On Mon, Jan 19, 2026 at 11:12 AM Alexandre Oliva <[email protected]> wrote:
>
>
> ldexpf and ldexpl are only optimized as expected when the target libc
> is known to have C99 support, so don't expect those optimizations when
> HAVE_C99_RUNTIME is not set by builtins-config.h.
>
> Regstrapped on x86_64-linux-gnu. Also tested with aarch64-elf and
> arm-eabi with gcc-15. Ok to install?
Ok.
>
>
> for gcc/testsuite/ChangeLog
>
> * gcc.dg/tree-ssa/ldexp.c: Require HAVE_C99_RUNTIME to test
> ldexpf and ldexpl.
> ---
> gcc/testsuite/gcc.dg/tree-ssa/ldexp.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ldexp.c
> b/gcc/testsuite/gcc.dg/tree-ssa/ldexp.c
> index 92bcf588b16ac..98395f9da7674 100644
> --- a/gcc/testsuite/gcc.dg/tree-ssa/ldexp.c
> +++ b/gcc/testsuite/gcc.dg/tree-ssa/ldexp.c
> @@ -3,6 +3,8 @@
>
> /* { dg-final { scan-assembler-not "\tfmul\t" } } */
>
> +#include "../builtins-config.h"
> +
> #define TEST(TYPE, BUILTIN, CONST, NAME) \
> TYPE test_##NAME##_1(TYPE a, int i) \
> { \
> @@ -28,5 +30,9 @@
> }
>
> TEST(double, ldexp, 8.0, double_ldexp)
> +#ifdef HAVE_C99_RUNTIME
> +/* If libc is not known to have these functions, introduced in C99, the
> + compiler won't optimize them. */
> TEST(float, ldexpf, 8.0f, float_ldexp)
> TEST(long double, ldexpl, 8.0L, long_ldexp)
> +#endif
>
> --
> Alexandre Oliva, happy hacker https://blog.lx.oliva.nom.br/
> Free Software Activist FSFLA co-founder GNU Toolchain Engineer
> More tolerance and less prejudice are key for inclusion and diversity.
> Excluding neuro-others for not behaving ""normal"" is *not* inclusive!