Chris Denton
e082bf341f
Rollup merge of #140323 - tgross35:cfg-unstable-float, r=Urgau
...
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 `cfg_target_has_reliable_f16_f128` internal feature, which provides the following new configuration gates:
* `cfg(target_has_reliable_f16)`
* `cfg(target_has_reliable_f16_math)`
* `cfg(target_has_reliable_f128)`
* `cfg(target_has_reliable_f128_math)`
`reliable_f16` and `reliable_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 planned to ever become stable, it is only intended to replace the build scripts for `std` tests and `compiler-builtins` that don't have any way to configure based on the codegen backend.
MCP: https://github.com/rust-lang/compiler-team/issues/866
Closes: https://github.com/rust-lang/compiler-team/issues/866
[1]: https://github.com/rust-lang/rust/blob/555e1d0386f024a8359645c3217f4b3eae9be042/library/std/build.rs#L84-L186
---
The second commit makes use of this config to replace `cfg_{f16,f128}{,_math}` in `library/`. I omitted providing a `cfg(bootstrap)` configuration to keep things simpler since the next beta branch is in two weeks.
try-job: aarch64-gnu
try-job: i686-msvc-1
try-job: test-various
try-job: x86_64-gnu
try-job: x86_64-msvc-ext2
2025-04-28 23:29:17 +00:00
..
2025-04-20 11:34:56 +02:00
2025-03-14 19:50:03 +00:00
2025-04-03 11:08:55 +03:00
2025-04-08 23:06:31 +03:00
2024-12-27 19:58:16 +11:00
2025-04-19 01:10:26 -06:00
2025-04-08 23:06:31 +03:00
2025-04-28 23:29:16 +00:00
2025-04-08 23:06:31 +03:00
2025-04-08 23:06:31 +03:00
2025-02-26 19:03:56 +01:00
2025-04-08 23:06:31 +03:00
2025-04-17 06:25:15 +02:00
2025-04-28 23:29:16 +00:00
2025-04-18 05:16:29 +02:00
2025-04-17 06:25:15 +02:00
2025-04-08 21:54:34 -04:00
2025-04-19 18:42:24 +08:00
2025-01-23 20:51:29 +08:00
2025-02-06 22:28:44 +00:00
2025-04-19 18:42:24 +08:00
2025-02-10 20:21:39 +00:00
2025-04-14 15:28:41 +08:00
2025-04-26 14:48:30 +09:00
2025-01-23 20:51:29 +08:00
2025-02-10 20:21:39 +00:00
2024-12-07 21:37:13 +00:00
2025-04-03 11:08:55 +03:00
2025-04-13 17:37:52 -04:00
2025-04-27 19:58:44 +00:00
2025-04-17 11:21:54 +00:00
2025-04-14 19:54:27 +00:00
2025-03-03 08:52:07 +01:00
2025-04-19 01:10:26 -06:00
2025-04-17 21:53:25 +02:00
2025-04-24 03:20:19 +05:00
2025-03-20 02:17:14 +00:00
2025-02-15 03:41:07 +01:00
2025-02-14 00:44:10 -08:00
2025-04-24 12:54:40 +08:00
2025-04-17 21:53:25 +02:00
2025-02-10 20:21:39 +00:00
2024-12-04 20:29:35 +00:00
2025-04-24 13:28:59 +00:00
2025-04-03 11:08:55 +03:00
2025-04-26 14:48:30 +09:00
2025-04-08 10:46:31 -07:00
2025-04-25 19:13:41 +00:00
2025-04-02 09:16:34 +11:00
2025-03-04 00:21:02 +08:00
2025-04-17 19:45:28 +08:00
2025-04-01 16:07:23 +11:00
2024-12-09 21:06:29 +08:00
2025-04-14 21:26:41 -05:00
2025-04-17 06:25:15 +02:00
2025-03-25 17:33:09 +03:00
2025-04-10 09:56:37 +02:00
2025-04-21 16:16:38 +09:00
2025-02-10 20:21:39 +00:00
2025-03-14 19:50:03 +00:00
2025-04-18 15:57:29 +02:00
2025-02-21 00:41:17 +00:00
2025-04-24 18:41:43 +00:00
2025-03-30 01:32:21 +03:00
2025-03-14 19:50:03 +00:00
2025-04-17 04:52:34 +00:00
2025-04-17 19:45:28 +08:00
2025-04-18 15:57:29 +02:00
2025-02-24 16:41:18 +00:00
2025-02-27 10:26:33 +00:00
2025-04-08 23:06:31 +03:00
2025-04-08 23:06:31 +03:00
2025-03-08 20:44:57 +00:00
2025-04-08 23:06:31 +03:00
2025-04-20 11:36:28 +02:00
2025-04-08 23:06:31 +03:00
2025-02-14 00:44:10 -08:00
2025-03-25 17:33:09 +03:00
2025-02-10 20:21:39 +00:00
2025-04-08 23:06:31 +03:00
2025-03-14 19:50:03 +00:00
2025-04-09 20:23:09 +02:00
2025-04-13 21:48:53 +03:00
2025-03-07 17:55:08 +00:00
2025-04-16 19:26:26 -04:00
2025-02-10 20:21:39 +00:00
2025-03-14 19:50:03 +00:00
2025-04-18 15:57:29 +02:00
2025-04-08 23:06:31 +03:00
2025-04-13 21:48:53 +03:00
2025-04-28 23:29:17 +00:00
2025-04-13 01:22:59 +02:00
2025-04-27 19:58:44 +00:00
2025-03-25 17:33:09 +03:00
2025-04-10 23:48:57 +03:00
2024-12-12 23:36:27 +00:00
2025-02-06 22:28:44 +00:00
2025-02-28 22:29:52 +08:00
2025-04-08 23:06:31 +03:00
2024-12-19 10:56:31 +00:00
2025-02-10 20:21:39 +00:00
2025-04-17 00:16:22 +02:00
2025-04-11 11:03:08 +10:00
2025-04-24 02:57:10 +02:00
2025-04-17 06:25:15 +02:00
2025-02-10 20:21:39 +00:00
2025-04-11 10:53:45 +00:00
2025-03-31 15:41:48 +03:00
2025-04-08 23:06:31 +03:00
2025-04-28 17:15:11 +00:00
2025-04-09 05:39:18 +00:00
2025-04-10 09:56:37 +02:00
2025-03-14 19:50:03 +00:00
2024-12-31 23:46:39 +08:00
2025-03-11 20:26:10 -07:00
2025-04-19 18:42:24 +08:00
2025-04-03 11:08:55 +03:00
2025-04-08 23:06:31 +03:00
2025-04-05 11:44:38 -07:00
2025-04-03 11:08:55 +03:00
2025-04-03 11:08:55 +03:00
2024-12-17 13:56:10 +11:00
2025-04-16 14:48:20 +02:00
2025-04-08 23:06:31 +03:00
2025-04-24 12:54:40 +08:00
2025-03-25 17:33:09 +03:00
2025-04-03 11:08:55 +03:00
2025-04-26 14:48:30 +09:00
2025-04-08 23:06:31 +03:00
2025-03-04 00:21:02 +08:00
2025-01-24 01:19:50 +00:00
2025-02-24 18:48:40 +00:00
2025-04-10 09:56:37 +02:00
2025-04-03 11:08:55 +03:00
2025-04-13 21:48:53 +03:00
2025-04-24 11:59:20 +01:00
2025-03-11 12:05:02 +00:00
2025-04-10 09:56:37 +02:00
2025-04-03 21:41:58 +00:00
2025-04-11 10:53:45 +00:00
2025-04-08 23:06:31 +03:00
2025-04-17 11:21:54 +00:00
2025-04-10 12:52:08 +08:00
2025-04-25 01:41:25 +08:00
2025-04-28 17:22:11 +00:00
2025-01-23 14:32:21 -05:00
2025-03-17 01:59:37 -05:00
2025-03-07 20:59:45 +11:00
2025-04-14 21:26:41 -05:00
2024-12-12 23:36:27 +00:00
2025-04-27 16:08:59 +02:00
2025-04-03 11:08:55 +03:00
2025-04-26 06:35:44 +10:00
2025-02-10 20:21:39 +00:00
2025-04-25 20:50:57 +09:00
2025-04-18 15:57:29 +02:00
2025-04-16 08:57:15 +10:00
2025-04-09 17:53:32 +00:00
2025-04-13 21:48:53 +03:00
2025-04-17 19:45:28 +08:00
2024-12-07 21:29:58 +00:00
2025-04-25 20:50:57 +09:00
2025-04-17 19:45:28 +08:00
2025-04-09 02:19:37 +00:00
2025-01-28 19:35:51 +00:00
2025-02-14 00:44:10 -08:00
2025-04-08 23:06:31 +03:00
2025-01-30 21:33:11 -07:00
2025-04-26 14:48:30 +09:00
2025-04-13 21:48:53 +03:00
2025-04-17 19:45:28 +08:00
2025-04-17 19:45:28 +08:00
2025-04-17 21:53:25 +02:00
2025-02-10 20:21:39 +00:00
2025-02-21 00:41:17 +00:00
2025-04-08 23:06:31 +03:00
2025-04-14 00:12:37 +02:00
2025-02-10 20:21:39 +00:00
2025-04-21 15:55:58 +00:00
2025-04-13 21:48:53 +03:00
2025-04-08 23:06:31 +03:00
2025-04-13 11:48:17 +00:00
2025-04-03 11:08:55 +03:00
2025-04-07 19:13:31 +03:00
2025-04-25 17:02:59 +05:00
2025-03-25 17:33:09 +03:00
2025-04-27 17:25:15 +02:00
2025-04-15 11:14:23 +02:00
2025-04-12 15:24:25 +08:00
2025-01-21 06:59:15 -07:00
2025-04-13 21:48:53 +03:00
2025-04-08 23:06:31 +03:00
2025-04-25 14:33:16 +10:00
2025-03-24 18:57:22 +00:00
2025-04-08 23:06:31 +03:00
2025-02-10 20:21:39 +00:00
2025-01-06 08:54:27 +01:00
2025-03-14 19:50:03 +00:00
2024-12-14 06:44:05 +00:00
2025-04-14 14:29:14 +08:00
2025-04-21 16:16:38 +09:00
2025-04-13 21:48:53 +03:00
2025-02-27 20:02:25 +00:00
2025-04-08 23:06:31 +03:00
2025-04-25 20:50:57 +09:00
2025-04-03 11:08:55 +03:00
2025-04-25 17:02:59 +05:00
2025-04-03 11:08:55 +03:00
2025-04-18 15:02:22 +02:00
2025-04-08 23:06:31 +03:00
2025-04-08 23:06:31 +03:00
2025-04-08 23:06:31 +03:00
2025-03-25 17:33:09 +03:00
2025-03-19 23:29:35 +01:00
2025-04-11 10:53:45 +00:00
2025-04-08 23:06:31 +03:00
2025-01-23 20:51:29 +08:00
2025-04-24 22:14:23 +00:00
2025-03-13 21:12:07 +00:00
2025-03-30 01:32:21 +03:00
2025-04-25 17:59:33 +00:00
2025-04-08 23:06:31 +03:00
2025-03-30 22:53:21 +00:00
2025-03-25 17:33:09 +03:00
2025-04-08 23:06:31 +03:00
2025-04-26 14:48:30 +09:00
2025-04-04 09:44:19 +02:00
2025-03-19 12:55:02 -04:00
2025-02-10 20:21:39 +00:00
2025-03-11 20:26:10 -07:00
2025-04-08 23:06:31 +03:00
2025-02-14 16:23:27 +01:00
2025-04-24 11:40:47 +02:00
2024-12-27 19:58:16 +11:00
2025-03-25 17:33:09 +03:00
2025-02-11 20:18:01 -08:00
2025-03-26 19:40:27 +11:00
2025-04-19 18:42:23 +08:00
2025-04-13 21:48:53 +03:00
2025-04-14 10:36:13 +08:00
2025-01-29 15:45:13 +00:00
2025-03-27 14:11:11 +01:00
2025-02-03 10:39:32 -05:00
2025-04-04 12:37:38 +00:00
2025-04-03 11:08:55 +03:00
2025-04-08 05:54:57 +00:00
2025-04-26 07:13:09 +02:00
2025-04-25 12:55:50 -07:00
2025-04-25 19:07:41 +07:00
2025-04-03 11:08:55 +03:00
2025-04-10 09:56:37 +02:00
2025-02-21 18:30:07 +00:00
2025-02-10 20:21:39 +00:00
2025-04-16 20:24:55 +10:00
2025-04-25 20:50:57 +09:00
2025-02-21 00:41:17 +00:00
2025-04-24 18:41:43 +00:00
2025-02-03 19:51:20 +00:00
2025-04-22 01:22:13 +00:00
2025-02-10 20:21:39 +00:00
2025-03-05 23:06:54 +00:00
2025-04-08 23:06:31 +03:00
2025-02-10 20:21:39 +00:00
2025-04-08 23:06:31 +03:00
2025-03-14 19:50:03 +00:00
2025-04-13 21:48:53 +03:00
2024-12-07 21:37:13 +00:00
2025-04-24 22:14:23 +00:00
2025-03-22 11:41:42 +08:00
2025-04-08 23:06:31 +03:00
2025-04-08 23:06:31 +03:00
2025-02-28 16:32:06 +00:00
2025-02-27 10:26:33 +00:00
2025-04-08 23:06:31 +03:00
2025-04-10 09:56:37 +02:00
2025-04-08 23:06:31 +03:00
2025-02-10 20:21:39 +00:00
2025-04-03 21:41:58 +00:00
2025-04-08 23:06:31 +03:00
2025-03-01 22:02:46 +08:00
2025-02-04 21:42:43 +05:30
2025-04-03 11:08:55 +03:00
2025-01-23 16:45:19 -08:00
2025-01-23 16:45:19 -08:00
2025-01-23 20:51:29 +08:00
2025-04-03 11:08:55 +03:00
2025-03-14 15:53:42 +08:00
2025-04-04 12:37:38 +00:00
2025-04-04 12:37:38 +00:00
2025-04-03 11:08:55 +03:00
2025-04-03 11:08:55 +03:00
2025-02-10 20:21:39 +00:00
2025-03-14 19:50:03 +00:00
2025-04-03 11:08:55 +03:00
2025-04-03 11:08:55 +03:00
2025-04-03 21:41:58 +00:00
2025-01-21 06:59:15 -07:00
2025-04-18 01:44:06 +00:00
2025-04-03 21:41:58 +00:00
2025-03-11 20:26:10 -07:00
2025-04-08 23:06:31 +03:00
2025-02-24 19:34:54 +00:00
2025-02-03 10:39:32 -05:00
2025-04-03 21:41:58 +00:00
2025-04-13 21:48:53 +03:00
2025-04-13 21:48:53 +03:00
2025-04-03 11:08:55 +03:00
2025-04-03 11:08:55 +03:00
2025-01-06 03:55:19 +00:00
2025-02-10 20:21:39 +00:00
2025-04-08 23:06:31 +03:00
2025-04-08 23:06:31 +03:00
2025-02-21 00:41:17 +00:00
2025-02-14 00:44:10 -08:00
2025-03-31 23:58:17 +02:00
2025-03-31 23:58:17 +02:00
2025-03-31 23:58:17 +02:00
2025-03-31 23:58:17 +02:00
2025-04-13 21:48:53 +03:00
2024-12-07 21:29:58 +00:00
2025-02-10 20:21:39 +00:00
2025-04-06 21:41:47 +02:00
2025-01-23 20:51:29 +08:00
2025-01-23 20:51:29 +08:00
2025-04-04 16:32:18 +02:00
2025-04-04 16:32:18 +02:00
2025-04-24 22:14:23 +00:00
2025-02-06 22:28:44 +00:00
2025-04-03 11:08:55 +03:00
2025-04-03 11:08:55 +03:00
2025-03-04 00:21:02 +08:00
2025-03-04 00:21:02 +08:00
2024-12-27 19:58:16 +11:00
2025-02-10 20:21:39 +00:00
2025-02-27 12:57:26 +08:00
2025-02-06 15:05:53 -05:00
2025-02-06 22:28:44 +00:00
2025-03-10 01:38:20 -07:00