Issue |
136044
|
Summary |
clang 16/17/18 fail to compiler ppc64le with -mfloat128
|
Labels |
clang
|
Assignees |
|
Reporter |
munroesj52
|
Clang fails the pveclib configure test for PVECLIB_FLOAT128_CFLAGS with -mfloat128. and no -mcpu. This should default to power8 and the libgcc runtime.
Clang uses /usr/include/powerpc64le-linux-gnu/bits/floatn.h from the GCC installation which defines:
/* The following builtins (suffixed with 'q') are available in GCC >= 6.2,
which is the minimum version required for float128 support on powerpc64le.
Since GCC 7.0 the builtins suffixed with f128 are also available, then
there is no need to redefined them. */
# if !__GNUC_PREREQ (7, 0)
# define __builtin_copysignf128 __builtin_copysignq
# define __builtin_fabsf128 __builtin_fabsq
# define __builtin_inff128 __builtin_infq
# define __builtin_nanf128 __builtin_nanq
# define __builtin_nansf128 __builtin_nansq
# endif
But the configure test fails with:
conftest.c:78:13: error: use of unknown builtin '__builtin_copysignq' [-Wimplicit-function-declaration]
78 | return (__builtin_copysignf128(valx, valy));
| ^
/usr/include/powerpc64le-linux-gnu/bits/floatn.h:101:35: note: expanded from macro '__builtin_copysignf128'
101 | # define __builtin_copysignf128 __builtin_copysignq
| ^
1 error generated.
GCC still defines both __builtin_copysignf128 and __builtin_copysignq
But is appears that clang only defines __builtin_copysignf128 which leaves GCCs floatn.h in a confused state.
PVECLIB is @ https://github.com/open-power-sdk/pveclib
The pveclib configue test source is ./testprograms/test_ppc_F128.c
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs