You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Implement the internal feature cfg_target_has_reliable_f16_f128
Support for `f16` and `f128` is varied across targets, backends, and
backend versions. Eventually we would like to reach a point where all
backends support these approximately equally, but until then we have to
work around some of these nuances of support being observable.
Introduce the `target_has_reliable_f16_f128` configuration option, gated
behind `cfg_target_has_reliable_f16_f128`, as an indicator for whether
or not the backend supports these types to a point that they can and
should be tested. The configuration mostly follows the logic used by
`target_feature`, and similarly takes a value:
#[cfg(target_has_reliable_f16_f128 = "f16")]
Accepted values are:
* `f16`
* `f16-math`
* `f128`
* `f128-math`
`f16` and `f128` indicate that basic arithmetic for the type works
correctly. The `-math` versions indicate that anything relying on `libm`
works correctly, since sometimes this hits a separate class of codegen
bugs.
These options match configuration set by the build script at [1]. The
logic for LLVM support is duplicated as-is from the same script. There
are a few possible updates that will come as a follow up.
The config introduced here is not intended to ever become stable, it is
only intended to replace the build scripts for `std` tests and in
`compiler-builtins` that don't have any way to set configuration based
on the codegen backend.
MCP: rust-lang/compiler-team#866Closes: rust-lang/compiler-team#866
[1]: https://github.com/rust-lang/rust/blob/555e1d0386f024a8359645c3217f4b3eae9be042/library/std/build.rs#L84-L186
0 commit comments