-
Notifications
You must be signed in to change notification settings - Fork 12.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[libc][math][c23] Temporarily disable float16 on 32-bit Arm #95027
Conversation
cc @lntue |
@llvm/pr-subscribers-libc Author: OverMighty (overmighty) ChangesSee Buildbot failure: https://lab.llvm.org/buildbot/#/builders/229/builds/27009. Full diff: https://github.com/llvm/llvm-project/pull/95027.diff 1 Files Affected:
diff --git a/libc/include/llvm-libc-macros/float16-macros.h b/libc/include/llvm-libc-macros/float16-macros.h
index 3f819ad53df71..e7d8d93bca1b6 100644
--- a/libc/include/llvm-libc-macros/float16-macros.h
+++ b/libc/include/llvm-libc-macros/float16-macros.h
@@ -11,7 +11,7 @@
#if defined(__FLT16_MANT_DIG__) && \
(!defined(__GNUC__) || __GNUC__ >= 13 || defined(__clang__)) && \
- !defined(__riscv)
+ !defined(__arm__) && !defined(_M_ARM) && !defined(__riscv)
#define LIBC_TYPES_HAS_FLOAT16
#endif
|
What's the plan for getting this re-enabled? #94807 ? |
@nickdesaulniers We have a few ideas that aren't incompatible:
|
I'm always in favor of not requiring a dependency on a compiler runtime, though llvm-libc is NOT capable of that at this point. Here's a build of llvm-libc for 32b ARM: $ llvm-nm libc/lib/libc.a | llvm-cxxfilt | grep aeabi
U __aeabi_read_tp
U __aeabi_ldivmod
U __aeabi_uldivmod
U __aeabi_ul2d
U __aeabi_idiv
U __aeabi_idiv
U __aeabi_ldivmod
U __aeabi_ul2d
U __aeabi_uidiv
U __aeabi_uidiv
U __aeabi_ul2d
U __aeabi_uldivmod
U __aeabi_uidiv
U __aeabi_uidivmod Those symbols will be satisfied by the compiler runtime. From a quick discussion in #gcc on oftc.irc.net, it sounds like half precision ops are promoted to single precision for soft float. That buildbot link above isn't loading for me; do you recall what the error was, specifically? |
It sends a request that 404's. After a recent Buildbot maintenance, builder IDs changed and we also lost all build logs. I believe this was the error:
It was due to these changes: |
Strange, |
I can refer to this to our GNU team, but it even if fixed it would take some years to get into distros. Looks like: Which it looks like compiler-rt defines. Perhaps for linux targets clang could be changed to use these instead. |
Possibly related to GCC's ARM port not yet supporting |
See Buildbot failure: https://lab.llvm.org/buildbot/#/builders/229/builds/27009.