[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