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
..
2023-05-09 20:35:39 -04:00
2024-02-16 20:02:50 +00:00
2024-02-16 20:02:50 +00:00
2023-11-24 19:15:52 +01:00
2024-11-03 13:55:52 -08:00
2024-11-03 13:55:52 -08:00
2023-10-08 20:17:53 -07:00
2024-01-13 12:46:58 -05:00
2024-10-22 07:37:54 +01:00
2024-10-22 07:37:54 +01:00
2024-02-16 20:02:50 +00:00
2024-01-12 11:02:57 +01:00
2025-02-24 09:26:54 +00:00
2025-03-03 09:03:04 +01:00
2025-02-24 09:26:54 +00:00
2025-02-24 09:26:54 +00:00
2025-02-09 20:45:47 -08:00
2025-02-09 20:45:47 -08:00
2025-02-24 09:26:54 +00:00
2025-02-24 09:26:54 +00:00
2025-02-24 09:26:54 +00:00
2025-02-24 09:26:54 +00:00
2025-02-24 09:26:54 +00:00
2025-02-24 09:26:54 +00:00
2025-02-24 09:26:54 +00:00
2025-02-24 09:26:54 +00:00
2025-04-06 21:41:47 +02:00
2025-04-06 21:41:47 +02:00
2024-09-29 23:40:43 -05:00
2024-11-03 13:55:52 -08:00
2024-11-03 13:55:52 -08:00
2024-01-13 12:46:58 -05:00
2024-01-13 12:46:58 -05:00
2024-01-13 12:46:58 -05:00
2025-02-24 14:31:19 +01:00
2025-02-24 14:31:19 +01:00
2024-01-13 12:46:58 -05:00
2024-12-11 11:59:12 +00:00
2024-12-13 16:45:43 +00:00
2024-12-13 16:45:43 +00:00
2024-12-13 16:45:43 +00:00
2024-12-11 11:59:12 +00:00
2025-02-24 09:26:54 +00:00
2025-02-24 09:26:54 +00:00
2025-02-24 09:26:54 +00:00
2025-02-24 09:26:54 +00:00
2025-03-17 11:12:10 +00:00
2025-03-17 11:12:10 +00:00
2024-02-16 20:02:50 +00:00
2024-01-13 12:46:58 -05:00
2024-01-13 12:46:58 -05:00
2024-01-13 12:46:58 -05:00
2025-04-28 16:23:13 +07:00
2025-04-28 16:23:13 +07:00
2025-01-22 09:20:57 -08:00
2025-01-26 21:20:31 +01:00
2024-12-13 00:04:56 +00:00
2024-12-13 00:04:56 +00:00
2024-12-22 21:57:57 +00:00
2024-12-22 21:57:57 +00:00
2024-11-03 13:55:52 -08:00
2024-11-03 13:55:52 -08:00
2024-11-03 13:55:52 -08:00
2024-10-11 20:38:43 +02:00
2024-10-11 20:38:43 +02:00
2024-10-11 20:38:43 +02:00
2024-01-13 12:46:58 -05:00
2023-05-05 21:44:48 +02:00
2024-01-13 12:46:58 -05:00
2025-04-08 23:06:31 +03:00
2024-01-13 12:46:58 -05:00
2023-05-11 18:06:31 +04:00
2024-01-13 12:46:58 -05:00
2025-04-08 23:06:31 +03:00
2024-01-13 12:46:58 -05:00
2024-04-06 11:21:47 -04:00
2024-04-06 11:21:47 -04:00
2025-02-03 12:53:57 -08:00
2025-02-03 13:55:15 -08:00
2025-04-08 23:06:31 +03:00
2025-01-06 10:29:54 +01:00
2023-08-18 19:57:28 +02:00
2024-01-13 12:46:58 -05:00
2025-04-08 23:06:31 +03:00
2024-01-13 12:46:58 -05:00
2024-05-04 11:30:38 +02:00
2024-05-04 11:30:38 +02:00
2024-01-13 12:46:58 -05:00
2024-01-13 12:46:58 -05:00
2025-04-27 19:58:44 +00:00
2025-04-27 19:58:44 +00:00
2025-02-03 10:39:32 -05:00
2024-02-08 08:10:43 +00:00
2024-01-13 12:46:58 -05:00
2023-05-03 22:41:29 +00:00
2024-01-13 12:46:58 -05:00
2024-01-13 12:46:58 -05:00
2025-04-08 23:06:31 +03:00
2024-04-24 08:05:29 +00:00
2024-01-13 12:46:58 -05:00
2024-11-03 13:55:52 -08:00
2024-11-03 13:55:52 -08:00
2025-04-24 22:14:23 +00:00
2025-04-24 22:14:23 +00:00
2025-04-24 22:14:23 +00:00
2025-04-24 22:14:23 +00:00
2025-04-24 22:14:23 +00:00
2025-04-24 22:14:23 +00:00
2024-02-16 20:02:50 +00:00
2025-02-10 19:51:26 +00:00
2025-02-10 19:51:26 +00:00
2025-03-06 11:33:24 -08:00
2025-03-06 11:33:24 -08:00
2025-04-03 21:41:58 +00:00
2024-12-23 12:30:37 +11:00
2024-12-23 12:30:37 +11:00
2025-04-08 23:06:31 +03:00
2024-11-03 13:55:52 -08:00
2024-11-03 13:55:52 -08:00
2024-01-13 12:46:58 -05:00
2024-12-09 21:55:13 +00:00
2025-01-18 21:15:42 +00:00
2024-01-13 12:46:58 -05:00
2025-04-03 21:41:58 +00:00
2024-03-20 22:30:27 +01:00
2024-11-03 13:55:52 -08:00
2024-11-03 13:55:52 -08:00
2024-04-30 22:27:19 +02:00
2024-12-13 15:40:37 +00:00
2025-01-22 09:20:57 -08:00
2025-01-26 21:20:31 +01:00
2024-01-13 12:46:58 -05:00
2024-01-13 12:46:58 -05:00
2024-01-13 12:46:58 -05:00
2025-03-06 22:36:07 -03:00
2025-03-06 22:36:07 -03:00
2024-08-10 12:07:17 +02:00
2024-11-23 08:57:25 -07:00
2023-06-19 12:54:34 +00:00
2024-01-13 12:46:58 -05:00
2025-04-16 22:44:02 +03:00
2025-04-16 22:44:02 +03:00
2025-04-16 22:44:02 +03:00
2025-04-16 22:44:02 +03:00
2025-04-16 22:44:02 +03:00
2025-04-16 22:44:02 +03:00
2025-04-16 22:44:02 +03:00
2025-04-16 22:44:02 +03:00
2025-02-10 20:21:39 +00:00
2025-02-12 19:57:45 -08:00
2025-02-12 19:57:45 -08:00
2024-01-13 12:46:58 -05:00
2025-04-03 01:08:41 +01:00
2025-04-03 01:08:41 +01:00
2025-04-03 01:08:41 +01:00
2025-04-03 01:08:41 +01:00
2025-04-03 01:08:41 +01:00
2025-04-03 01:08:41 +01:00
2023-12-20 18:16:28 +01:00
2025-04-13 01:22:59 +02:00
2025-04-13 01:22:59 +02:00
2025-04-13 01:22:59 +02:00
2025-04-13 01:22:59 +02:00
2024-08-28 23:32:40 +01:00
2024-08-28 23:32:40 +01:00
2025-02-24 14:31:17 +01:00
2025-02-24 14:31:17 +01:00
2024-01-12 14:11:16 +03:00
2024-01-13 12:46:58 -05:00
2024-11-03 13:55:52 -08:00
2025-04-08 23:06:31 +03:00
2024-02-29 14:10:29 +00:00
2024-01-13 12:46:58 -05:00
2024-01-13 12:46:58 -05:00
2023-12-12 20:13:37 +00:00
2025-04-03 21:41:58 +00:00
2025-01-23 06:01:36 +00:00
2025-01-23 06:01:36 +00:00
2025-02-28 20:43:15 +00:00
2025-02-28 20:43:15 +00:00
2024-05-20 09:18:49 +02:00
2024-05-20 09:18:49 +02:00
2025-04-03 21:41:58 +00:00
2024-12-31 17:36:49 -08:00
2025-03-28 18:15:23 +01:00
2025-03-28 18:15:23 +01:00
2024-01-07 18:00:03 +00:00
2024-01-13 12:46:58 -05:00
2024-12-14 03:21:24 +00:00
2024-12-14 03:21:24 +00:00
2025-01-16 16:34:05 +08:00
2025-01-16 16:34:05 +08:00
2024-01-13 12:46:58 -05:00
2025-04-06 21:41:47 +02:00
2025-04-06 21:41:47 +02:00
2025-01-06 11:16:24 +05:30
2025-01-06 11:16:24 +05:30
2024-04-17 13:00:43 +02:00
2024-04-17 13:00:43 +02:00
2024-11-18 20:18:22 +08:00
2024-01-13 12:46:58 -05:00
2023-12-05 19:53:59 +00:00
2024-08-17 12:43:25 -04:00
2024-01-13 12:46:58 -05:00
2024-01-13 12:46:58 -05:00
2024-11-18 14:13:10 +11:00
2024-11-18 14:13:10 +11:00
2025-03-25 17:33:09 +03:00
2024-01-13 12:46:58 -05:00
2024-11-03 13:55:52 -08:00
2024-11-03 13:55:52 -08:00
2024-06-13 22:12:26 -03:00
2024-06-13 22:12:26 -03:00
2024-01-13 12:46:58 -05:00
2024-01-13 12:46:58 -05:00
2024-01-02 13:49:47 +01:00
2024-01-02 13:49:48 +01:00
2025-03-04 10:11:13 -05:00
2025-03-04 10:11:13 -05:00
2025-02-11 09:19:37 +00:00
2025-02-11 09:19:37 +00:00
2024-01-13 12:46:58 -05:00
2025-03-05 05:34:37 +05:30
2025-03-05 05:34:37 +05:30
2024-02-16 20:02:50 +00:00
2024-12-18 19:27:44 +00:00
2025-04-03 21:41:58 +00:00
2024-03-27 11:20:28 -04:00
2025-04-20 11:18:38 +02:00
2025-04-07 21:42:12 +02:00
2025-04-20 11:18:38 +02:00
2025-04-20 11:18:38 +02:00
2024-11-18 14:13:10 +11:00
2024-11-18 15:55:12 +11:00
2025-03-25 17:33:09 +03:00
2024-01-13 12:46:58 -05:00
2025-02-10 20:21:39 +00:00
2023-05-02 22:36:24 +00:00
2023-11-24 19:15:52 +01:00
2025-04-03 21:41:58 +00:00
2025-02-22 18:30:14 +00:00
2024-02-01 20:01:05 +01:00
2024-02-01 20:01:05 +01:00
2025-04-08 23:06:31 +03:00
2025-01-30 21:33:11 -07:00
2024-01-13 12:46:58 -05:00
2025-04-08 23:06:31 +03:00
2024-01-13 12:46:58 -05:00
2024-02-16 20:02:50 +00:00
2024-12-18 19:27:44 +00:00
2023-02-16 03:39:58 +00:00
2024-01-13 12:46:58 -05:00
2024-07-29 17:50:12 +01:00
2024-07-29 17:50:12 +01:00
2024-06-08 18:17:55 +02:00
2024-10-29 16:26:57 +00:00
2024-01-13 12:46:58 -05:00
2025-01-23 17:19:53 +00:00
2025-01-23 17:19:53 +00:00
2023-11-24 19:15:52 +01:00
2024-06-25 19:00:02 +02:00
2024-06-25 19:00:02 +02:00
2025-02-17 09:30:40 +11:00
2025-02-17 09:30:40 +11:00
2025-03-05 22:37:53 +08:00
2025-03-05 22:37:53 +08:00
2025-04-03 21:41:58 +00:00
2024-03-05 23:34:45 -05:00
2023-10-27 19:56:12 +02:00
2023-12-04 11:56:21 +01:00
2024-01-13 12:46:58 -05:00
2024-01-13 12:46:58 -05:00
2024-02-16 20:02:50 +00:00
2025-02-26 19:09:51 +01:00
2025-02-26 19:09:51 +01:00
2024-01-13 12:46:58 -05:00
2024-01-13 12:46:58 -05:00
2025-01-07 21:36:37 +01:00
2025-01-07 21:36:37 +01:00
2024-06-28 14:20:43 -04:00
2024-06-28 14:20:43 -04:00
2024-06-28 14:20:43 -04:00
2025-02-09 20:45:47 -08:00
2025-02-09 20:45:47 -08:00
2025-04-08 23:06:31 +03:00
2023-11-24 19:15:52 +01:00
2024-01-13 12:46:58 -05:00
2025-03-30 01:32:21 +03:00
2025-03-30 01:32:21 +03:00
2024-01-13 12:46:58 -05:00
2024-10-30 12:27:48 -07:00
2024-10-30 12:27:48 -07:00
2024-08-02 02:29:15 +05:30
2024-08-02 02:29:15 +05:30
2024-06-18 04:14:43 +08:00
2024-06-18 04:14:43 +08:00
2024-09-09 19:39:43 -07:00
2024-11-26 02:50:48 +08:00
2024-11-26 02:50:48 +08:00
2023-10-23 13:04:47 -07:00
2024-06-24 16:08:51 +03:00
2024-04-11 16:39:06 +00:00
2024-04-22 16:28:20 +00:00
2024-10-21 15:22:17 +01:00
2024-12-18 19:27:44 +00:00
2025-04-04 09:44:22 +02:00
2025-04-04 09:44:22 +02:00
2025-02-13 05:45:53 +00:00
2025-02-13 05:45:53 +00:00
2024-02-16 20:02:50 +00:00
2024-12-18 19:27:44 +00:00
2024-01-13 12:46:58 -05:00
2024-11-03 13:55:52 -08:00
2024-01-13 12:46:58 -05:00
2024-01-13 12:46:58 -05:00
2024-02-16 20:02:50 +00:00
2024-10-29 16:26:57 +00:00
2025-04-10 09:56:37 +02:00
2024-01-13 12:46:58 -05:00
2025-03-28 18:15:23 +01:00
2025-03-28 18:15:23 +01:00
2024-11-03 13:55:52 -08:00
2024-11-03 13:55:52 -08:00
2025-02-09 20:45:47 -08:00
2025-02-21 00:41:17 +00:00
2024-11-03 13:55:52 -08:00
2024-11-03 13:55:52 -08:00
2024-11-03 13:55:52 -08:00
2024-11-03 13:55:52 -08:00
2025-02-09 20:45:47 -08:00
2025-02-09 20:45:47 -08:00
2024-09-23 11:57:28 +02:00
2025-03-10 08:51:19 +01:00
2024-11-21 19:32:07 +01:00
2024-11-21 19:32:07 +01:00
2024-11-21 19:32:07 +01:00
2024-12-12 16:29:40 +00:00
2024-12-12 16:29:40 +00:00
2025-02-10 20:21:39 +00:00
2025-02-10 20:21:39 +00:00
2025-02-27 10:26:33 +00:00
2025-02-27 10:26:33 +00:00
2024-07-17 11:01:29 +01:00
2024-09-29 23:40:43 -05:00
2024-01-13 12:46:58 -05:00
2025-02-24 09:26:54 +00:00
2025-02-24 09:26:54 +00:00
2025-03-01 22:02:46 +08:00
2025-03-01 22:02:46 +08:00
2025-03-01 22:02:46 +08:00
2024-10-15 13:11:00 +02:00
2024-07-11 19:00:49 -07:00
2024-07-11 19:00:49 -07:00
2024-07-12 23:30:22 +05:30
2024-07-12 23:30:22 +05:30
2025-04-17 06:25:15 +02:00
2024-01-13 12:46:58 -05:00
2025-04-10 09:56:37 +02:00
2024-01-13 12:46:58 -05:00
2025-03-06 11:33:24 -08:00
2025-03-06 11:33:24 -08:00
2025-04-06 21:41:47 +02:00
2025-04-06 21:41:47 +02:00
2024-01-29 17:43:07 +08:00
2024-01-29 17:43:07 +08:00
2025-01-21 06:59:15 -07:00
2025-02-24 14:31:19 +01:00
2025-04-08 23:06:31 +03:00
2025-01-21 17:29:06 -07:00
2024-02-16 20:02:50 +00:00
2023-10-05 01:04:41 +00:00
2024-12-12 23:36:27 +00:00
2024-02-16 20:02:50 +00:00
2025-02-10 20:21:39 +00:00
2024-06-24 16:08:51 +03:00
2024-01-29 17:43:07 +08:00
2024-01-29 17:43:07 +08:00
2024-06-24 16:08:51 +03:00
2024-11-03 13:55:52 -08:00
2024-11-03 13:55:52 -08:00
2024-11-03 13:55:52 -08:00
2025-04-03 21:41:58 +00:00
2024-01-13 12:46:58 -05:00
2025-04-03 21:41:58 +00:00
2024-01-13 12:46:58 -05:00
2025-04-03 21:41:58 +00:00
2024-05-20 19:55:59 -07:00
2024-02-16 20:02:50 +00:00
2023-04-21 15:34:38 +02:00
2024-11-03 13:55:52 -08:00
2023-11-24 19:15:52 +01:00
2024-10-12 10:19:24 +02:00
2024-11-10 10:16:26 +01:00
2024-07-30 14:08:02 +00:00