-
Notifications
You must be signed in to change notification settings - Fork 13.5k
Revert "Disable f16
on Aarch64 without neon
"
#139276
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
Conversation
The LLVM issue [1] was resolved and the fix was synced to rust-lang/rust in [2]. This reverts commit c51b229. [1]: llvm/llvm-project#129394 [2]: rust-lang#138695
rustbot has assigned @Mark-Simulacrum. Use |
Needs rust-lang/compiler-builtins#809 to get synced first @rustbot blocked |
This is blocked on #139600 |
@rustbot ready |
@bors try |
…<try> Revert "Disable `f16` on Aarch64 without `neon`" The LLVM issue [1] was resolved and the fix was synced to rust-lang/rust in [2]. This reverts commit c51b229. [1]: llvm/llvm-project#129394 [2]: rust-lang#138695 try-job: aarch64-gnu try-job: aarch64-gnu-debug try-job: armhf-gnu try-job: dist-various-1
☀️ Try build successful - checks-actions |
r=me unless we think it makes sense to gate this on a "LLVM is at least 20.x.y" -- presumably this is broken on the older LLVM (distro) versions we still support? |
Thanks for taking a look. We haven’t been gating anything anything for the experimental float types based on LLVM version so I think it’s okay to omit here, though that probably isn’t a bad idea to add at some point. In practice these types are likely unreliable with anything other than the latest LLVM, each of the past few versions has come with ABI changes or moderately significant bugfixes. @bors r=Mark-Simulacrum |
…enton Rollup of 8 pull requests Successful merges: - rust-lang#139163 (indirect-const-stabilize the `exact_div` intrinsic) - rust-lang#139276 (Revert "Disable `f16` on Aarch64 without `neon`") - rust-lang#139315 (Switch `time` to `jiff` for time formatting in ICE dumps) - rust-lang#139382 (Update windows-bindgen to 0.61.0) - rust-lang#139688 (rustdoc-search: add unbox flag to Result aliases) - rust-lang#139701 (docs: clarify uint exponent for `is_power_of_two`) - rust-lang#139705 (Removed outdated ui test suite README, give reasons for disabled tests) - rust-lang#139713 (Fix typo in documentation) r? `@ghost` `@rustbot` modify labels: rollup
…enton Rollup of 8 pull requests Successful merges: - rust-lang#139163 (indirect-const-stabilize the `exact_div` intrinsic) - rust-lang#139276 (Revert "Disable `f16` on Aarch64 without `neon`") - rust-lang#139315 (Switch `time` to `jiff` for time formatting in ICE dumps) - rust-lang#139382 (Update windows-bindgen to 0.61.0) - rust-lang#139688 (rustdoc-search: add unbox flag to Result aliases) - rust-lang#139701 (docs: clarify uint exponent for `is_power_of_two`) - rust-lang#139705 (Removed outdated ui test suite README, give reasons for disabled tests) - rust-lang#139713 (Fix typo in documentation) r? `@ghost` `@rustbot` modify labels: rollup
Rollup merge of rust-lang#139276 - tgross35:enable-f16-without-neon, r=Mark-Simulacrum Revert "Disable `f16` on Aarch64 without `neon`" The LLVM issue [1] was resolved and the fix was synced to rust-lang/rust in [2]. This reverts commit c51b229. [1]: llvm/llvm-project#129394 [2]: rust-lang#138695 try-job: aarch64-gnu try-job: aarch64-gnu-debug try-job: armhf-gnu try-job: dist-various-1
…r=Mark-Simulacrum Revert "Disable `f16` on Aarch64 without `neon`" The LLVM issue [1] was resolved and the fix was synced to rust-lang/rust in [2]. This reverts commit c51b229. [1]: llvm/llvm-project#129394 [2]: rust-lang#138695 try-job: aarch64-gnu try-job: aarch64-gnu-debug try-job: armhf-gnu try-job: dist-various-1
For the record, yes, this failed on Fedora 41 (w/ LLVM 19) when compiling the Which matches the report in llvm/llvm-project#129394. We don't have full assertions enabled, so it's a SIGTRAP without any message. I think we'll be able to backport the LLVM fix though: llvm/llvm-project@cb850fe
I wouldn't really care if experimental floats were broken in a "do the wrong thing" kind of way, since nobody should be executing that code yet anyway. But when it fails to compile the target library at all, that's a showstopper IMO. |
You're right; I was thinking it also wouldn't be a problem since we somehow getting correct codegen on LLVM 19, but didn't consider cases where assertions are enabled. I made this conditional in #143125, which I believe you should be able to backport rather than needing to patch LLVM. |
…r=cuviper Disable f16 on Aarch64 without neon for llvm < 20.1.1 This check was added unconditionally in c51b229 ("Disable f16 on Aarch64 without `neon`") and reverted in 4a8d357 ("Revert "Disable `f16` on Aarch64 without `neon`"") since it did not fail in Rust's build. However, it is still possible to hit this crash if using LLVM 19 built with assertions, so disable the type conditionally based on version here. Note that for these builds, a similar patch is needed in the build script for `compiler-builtins` since it does not yet use `cfg(target_has_reliable_f16)` (hopefully to be resolved in the near future). Report: rust-lang#139276 (comment) Original LLVM issue: llvm/llvm-project#129394
The LLVM issue 1 was resolved and the fix was synced to rust-lang/rust in 2.
This reverts commit c51b229.
try-job: aarch64-gnu
try-job: aarch64-gnu-debug
try-job: armhf-gnu
try-job: dist-various-1