Add more constants, functions, and tests for f16 and f128#126608
Add more constants, functions, and tests for f16 and f128#126608bors merged 6 commits intorust-lang:masterfrom
f16 and f128#126608Conversation
|
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
This comment has been minimized.
This comment has been minimized.
|
💔 Test failed - checks-actions |
|
@bors r- yeah it failed that rollup |
88341ef to
7e617b0
Compare
|
I updated the x86 doctests to also be linux-only, which is what I meant to do originally |
800427d to
bc88716
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).
|
@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