Adhemerval Zanella
f165e244e4
math: Simplify and optimize modf implementation
...
Refactor the generic implementation to use math_config.h definitions,
and add an alternative one if the ABI supports truncf instructions
(gated through math-use-builtins-trunc.h).
The generic implementation generates similar code on x86_64, while
the optimization one for aarch64 (where truncf is supported as a
builtin by through frintz), the improvements are:
reciprocal-throughput master patch difference
workload-0_1 3.0595 3.0698 -0.34%
workload-1_maxint 5.1747 3.0542 40.98%
workload-maxint_maxfloat 3.4391 3.0349 11.75%
workload-integral 3.2732 3.0293 7.45%
latency master patch difference
workload-0_1 3.5267 4.7107 -33.57%
workload-1_maxint 6.9074 4.7282 31.55%
workload-maxint_maxfloat 3.7210 4.7506 -27.67%
workload-integral 3.8634 4.8137 -24.60%
Checked on aarch64-linux-gnu and x86_64-linux-gnu.
Reviewed-by: Wilco Dijkstra <Wilco.Dijkstra@arm.com >
2025-06-18 15:56:40 -03:00
..
2025-01-01 11:22:09 -08:00
2025-01-01 11:22:09 -08:00
2025-01-01 11:22:09 -08:00
2025-01-01 11:22:09 -08:00
2025-01-01 11:22:09 -08:00
2025-01-01 11:22:09 -08:00
2025-01-01 11:22:09 -08:00
2021-09-03 22:06:44 +05:30
2025-01-01 11:22:09 -08:00
2025-01-01 11:22:09 -08:00
2025-03-13 14:30:47 -07:00
2021-09-03 22:06:44 +05:30
2025-01-01 11:22:09 -08:00
2025-01-01 11:22:09 -08:00
2025-01-01 11:22:09 -08:00
2025-01-01 11:22:09 -08:00
2025-01-01 11:22:09 -08:00
2025-01-01 11:22:09 -08:00
2025-01-01 11:22:09 -08:00
2025-06-02 13:32:19 -03:00
2020-01-03 10:02:04 -03:00
2020-01-03 10:02:04 -03:00
2020-01-03 10:02:04 -03:00
2023-05-30 23:02:29 +00:00
2025-01-01 11:22:09 -08:00
2025-01-01 11:22:09 -08:00
2021-01-07 15:26:26 +00:00
2025-01-01 11:22:09 -08:00
2025-01-01 11:22:09 -08:00
2025-01-01 11:22:09 -08:00
2025-01-01 11:22:09 -08:00
2025-01-01 11:22:09 -08:00
2025-03-13 10:55:25 -07:00
2025-01-01 11:22:09 -08:00
2025-01-01 11:22:09 -08:00
2024-10-11 11:12:32 +02:00
2023-10-16 09:59:32 +02:00
2025-01-01 11:22:09 -08:00
2025-01-01 11:22:09 -08:00
2025-03-25 09:40:20 +00:00
2025-06-18 15:56:40 -03:00
2025-06-02 13:32:19 -03:00
2025-01-01 11:22:09 -08:00
2025-01-01 11:22:09 -08:00
2025-01-01 11:22:09 -08:00
2025-01-01 11:22:09 -08:00
2018-09-27 20:04:48 +00:00
2025-01-01 11:22:09 -08:00
2025-01-01 11:22:09 -08:00
2019-12-11 15:12:17 +01:00
2019-12-11 15:12:19 +01:00
2018-05-10 00:53:04 +00:00
2024-11-22 10:52:26 -03:00
2023-08-14 08:14:19 -07:00
2025-01-01 11:22:09 -08:00
2025-01-01 11:22:09 -08:00
2021-09-22 21:25:31 +00:00
2025-01-01 11:22:09 -08:00
2021-09-10 20:56:22 +00:00
2025-01-01 11:22:09 -08:00
2017-09-29 23:54:33 +00:00
2025-01-01 11:22:09 -08:00
2025-01-01 11:22:09 -08:00
2025-01-01 11:22:09 -08:00
2019-06-12 14:32:39 -03:00
2025-01-01 11:22:09 -08:00
2025-02-25 15:57:53 -05:00
2025-01-01 11:22:09 -08:00
2025-01-01 11:22:09 -08:00
2025-01-01 11:22:09 -08:00
2025-01-01 11:22:09 -08:00
2025-01-01 11:22:09 -08:00
2017-09-29 23:54:33 +00:00
2017-09-29 23:54:33 +00:00
2025-01-01 11:22:09 -08:00
2025-01-01 11:22:09 -08:00
2025-01-01 11:22:09 -08:00
2021-09-03 22:06:44 +05:30
2019-06-12 14:32:18 -03:00
2025-01-01 11:22:09 -08:00
2025-01-01 11:22:09 -08:00
2025-01-01 11:22:09 -08:00
2023-08-21 10:44:26 -07:00
2025-01-01 11:22:09 -08:00
2025-01-01 11:22:09 -08:00
2025-01-01 11:22:09 -08:00
2025-06-18 15:56:40 -03:00
2024-05-20 05:21:41 -07:00
2025-01-01 11:22:09 -08:00
2025-01-01 11:22:09 -08:00
2019-12-11 15:12:16 +01:00
2025-01-01 11:22:09 -08:00
2025-01-01 11:22:09 -08:00
2021-01-07 15:26:26 +00:00
2021-01-07 15:26:26 +00:00
2025-01-01 11:22:09 -08:00
2017-09-29 23:54:33 +00:00
2017-09-29 23:54:33 +00:00
2025-01-01 11:22:09 -08:00
2025-01-01 11:22:09 -08:00
2025-01-01 11:22:09 -08:00
2025-01-01 11:22:09 -08:00
2025-03-13 06:20:32 -07:00
2025-01-01 11:22:09 -08:00
2025-01-01 11:22:09 -08:00
2025-01-01 11:22:09 -08:00
2017-09-29 23:54:33 +00:00
2017-09-29 23:54:33 +00:00
2025-01-01 11:22:09 -08:00
2025-03-28 12:35:53 +00:00
2025-03-28 12:35:53 +00:00
2025-03-28 12:35:53 +00:00
2025-03-28 12:35:53 +00:00
2025-03-25 09:40:20 +00:00
2025-03-25 09:40:20 +00:00
2025-03-28 12:35:53 +00:00
2025-03-28 12:35:53 +00:00
2025-01-01 11:22:09 -08:00
2025-01-01 11:22:09 -08:00
2025-01-01 11:22:09 -08:00
2025-01-01 11:22:09 -08:00
2025-01-01 11:22:09 -08:00
2025-01-01 11:22:09 -08:00
2018-11-21 09:55:02 +00:00
2024-01-12 16:02:12 +00:00
2018-11-21 09:55:02 +00:00
2023-04-03 16:45:27 -03:00
2021-12-13 10:08:46 -03:00
2025-06-02 13:32:19 -03:00
2025-06-02 13:32:19 -03:00
2025-06-02 13:32:19 -03:00
2018-11-21 09:57:21 +00:00
2018-11-21 09:56:27 +00:00
2018-11-21 09:58:36 +00:00
2025-01-01 11:22:09 -08:00
2025-01-01 11:22:09 -08:00