-
-
Notifications
You must be signed in to change notification settings - Fork 14.2k
Add more constants, functions, and tests for f16 and f128
#126608
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
|
rustbot has assigned @Mark-Simulacrum. Use |
|
@rustbot author |
This comment has been minimized.
This comment has been minimized.
7679706 to
6ac1622
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
@rustbot label +rla-silenced |
|
Ah... guess the Clippy ICEs need to be fixed before this can be merged, |
1f22545 to
6a8826e
Compare
bc88716 to
ff5da47
Compare
This will make it easier to keep `f16` and `f128` consistent as their implementations get added.
Better explain the reasoning for the `next_up`/`next_down` integer implementation, as requested by Ralf.
ff5da47 to
ae50200
Compare
|
Had to disable f16 doctests on non-unix as well since it looks like extendhfsf/truncsfhf aren't always available. I was able to test locally on Windows MSVC and it passes there now. @rustbot ready |
There are some complexities about what platforms we can test f16 and f128 on. Put this in build.rs so we have an easy way to configure tests with a single attribute, and keep it up to date.
The symbols that these tests rely on are not available on all platforms and some ABIs are buggy, tests that rely on external functions are configured to only run on x86 (`f128`) or aarch64 (`f16`).
This adds everything that was directly or transitively blocked on const arithmetic for these types, which was recently merged. Since const arithmetic is recent, most of these need to be gated by `bootstrap`. Anything that relies on intrinsics that are still missing is excluded.
This suite tests all library functions that are now available for the types. Tests are only run on certain platforms where `f16` and `f128` are known to work (have symbols available and don't crash LLVM).
ae50200 to
e181297
Compare
|
@bors r+ rollup=never |
|
☀️ Test successful - checks-actions |
|
Finished benchmarking commit (4bdf8d2): comparison URL. Overall result: no relevant changes - no action needed@rustbot label: -perf-regression Instruction countThis benchmark run did not return any relevant results for this metric. Max RSS (memory usage)Results (primary -2.8%, secondary 2.9%)This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
CyclesResults (primary -1.5%)This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
Binary sizeThis benchmark run did not return any relevant results for this metric. Bootstrap: 695.46s -> 694.171s (-0.19%) |
This adds everything that was in some way blocked on const eval, since #126429 landed. There is a lot of
cfg(bootstrap)since that is a fairly recent change.f128tests are disabled on everything except x86_64 and Linux aarch64, which are two platforms I know have "good" support for these types - meaning basic math symbols are available and LLVM doesn't hit selection crashes.f16tests are enabled on almost everything except for known LLVM crashes. Doctests are only enabled on x86_64.Tracking issue: #116909