[PATCH 33/59] x86: Fix modf{f} build on clang
Adhemerval Zanella Netto
adhemerval.zanella@linaro.org
Mon Oct 20 17:42:20 GMT 2025
On 17/10/25 19:31, H.J. Lu wrote:
> On Sat, Oct 18, 2025 at 3:50 AM Adhemerval Zanella
> <adhemerval.zanella@linaro.org> wrote:
>>
>> Similar to the generic implementation, also use NO_MATH_REDIRECT
>> for the ifunc optimizations.
>
> Does it change GCC codegen?
No, the sysdeps/x86/fpu/math_private.h trunc/truncf definitions
overrides the NO_MATH_REDIRECT internal aliases. The issue is
for some reason it does not apply correctly on clang (it emits
calls to the internal aliases instead of properly inline the
intrinsic).
>
>> ---
>> sysdeps/x86_64/fpu/multiarch/s_modf-avx.c | 1 +
>> sysdeps/x86_64/fpu/multiarch/s_modf-sse4_1.c | 1 +
>> sysdeps/x86_64/fpu/multiarch/s_modff-avx.c | 1 +
>> sysdeps/x86_64/fpu/multiarch/s_modff-sse4_1.c | 1 +
>> 4 files changed, 4 insertions(+)
>>
>> diff --git a/sysdeps/x86_64/fpu/multiarch/s_modf-avx.c b/sysdeps/x86_64/fpu/multiarch/s_modf-avx.c
>> index 0982280d25..526262cd0c 100644
>> --- a/sysdeps/x86_64/fpu/multiarch/s_modf-avx.c
>> +++ b/sysdeps/x86_64/fpu/multiarch/s_modf-avx.c
>> @@ -1,3 +1,4 @@
>> +#define NO_MATH_REDIRECT
>> #include <math_private.h>
>>
>> #define __modf __modf_avx
>> diff --git a/sysdeps/x86_64/fpu/multiarch/s_modf-sse4_1.c b/sysdeps/x86_64/fpu/multiarch/s_modf-sse4_1.c
>> index f6fb996f97..01cafcff7a 100644
>> --- a/sysdeps/x86_64/fpu/multiarch/s_modf-sse4_1.c
>> +++ b/sysdeps/x86_64/fpu/multiarch/s_modf-sse4_1.c
>> @@ -1,3 +1,4 @@
>> +#define NO_MATH_REDIRECT
>> #include <math_private.h>
>>
>> #define __modf __modf_sse41
>> diff --git a/sysdeps/x86_64/fpu/multiarch/s_modff-avx.c b/sysdeps/x86_64/fpu/multiarch/s_modff-avx.c
>> index b2afe1efe3..13741e802a 100644
>> --- a/sysdeps/x86_64/fpu/multiarch/s_modff-avx.c
>> +++ b/sysdeps/x86_64/fpu/multiarch/s_modff-avx.c
>> @@ -1,3 +1,4 @@
>> +#define NO_MATH_REDIRECT
>> #include <math_private.h>
>>
>> #define __modff __modff_avx
>> diff --git a/sysdeps/x86_64/fpu/multiarch/s_modff-sse4_1.c b/sysdeps/x86_64/fpu/multiarch/s_modff-sse4_1.c
>> index 0352c3ea4b..651bc8aa75 100644
>> --- a/sysdeps/x86_64/fpu/multiarch/s_modff-sse4_1.c
>> +++ b/sysdeps/x86_64/fpu/multiarch/s_modff-sse4_1.c
>> @@ -1,3 +1,4 @@
>> +#define NO_MATH_REDIRECT
>> #include <math_private.h>
>>
>> #define __modff __modff_sse41
>> --
>> 2.43.0
>>
>
>
More information about the Libc-alpha
mailing list