Tue Ly
484319f497
[libc] Make expm1f correctly rounded when the targets have no FMA instructions.
Add another exceptional value and fix the case when |x| is small.
Performance tests with CORE-MATH project scripts:
With FMA instructions on Ryzen 1700:
```
$ ./perf.sh expm1f
LIBC-location: /home/lnt/experiment/llvm/llvm-project/build/projects/libc/lib/libllvmlibc.a
CORE-MATH reciprocal throughput : 15.362
System LIBC reciprocal throughput : 53.194
LIBC reciprocal throughput : 14.595
$ ./perf.sh expm1f --latency
LIBC-location: /home/lnt/experiment/llvm/llvm-project/build/projects/libc/lib/libllvmlibc.a
CORE-MATH latency : 57.755
System LIBC latency : 147.020
LIBC latency : 60.269
```
Without FMA instructions:
```
$ ./perf.sh expm1f
LIBC-location: /home/lnt/experiment/llvm/llvm-project/build/projects/libc/lib/libllvmlibc.a
CORE-MATH reciprocal throughput : 15.362
System LIBC reciprocal throughput : 53.300
LIBC reciprocal throughput : 18.020
$ ./perf.sh expm1f --latency
LIBC-location: /home/lnt/experiment/llvm/llvm-project/build/projects/libc/lib/libllvmlibc.a
CORE-MATH latency : 57.758
System LIBC latency : 147.025
LIBC latency : 70.304
```
Reviewed By: michaelrj
Differential Revision: https://reviews.llvm.org/D123440
2022-06-03 15:57:48 -04:00
..
2022-01-28 13:39:03 -05:00
2022-01-14 11:10:05 -05:00
2022-06-03 15:57:48 -04:00
2022-02-17 03:00:17 +00:00
2020-06-25 22:45:05 -07:00
2022-06-03 01:21:20 -04:00
2020-06-23 23:46:58 -07:00
2021-05-13 19:02:00 +00:00
2020-05-15 12:43:03 -07:00
2020-05-15 12:43:03 -07:00
2021-06-10 14:58:34 -04:00
2020-05-15 11:10:43 -07:00
2020-11-10 18:48:11 -05:00
2020-11-10 18:48:11 -05:00
2020-11-10 18:48:11 -05:00
2022-06-03 01:21:20 -04:00
2021-04-21 04:31:27 +00:00
2022-06-03 01:21:20 -04:00
2021-01-06 17:14:20 -05:00
2020-07-23 15:23:08 -04:00
2020-12-03 11:08:20 -05:00
2020-11-17 15:05:42 -08:00
2020-11-17 15:05:42 -08:00
2020-11-17 15:05:42 -08:00
2020-12-29 22:22:02 -08:00
2020-12-29 22:22:02 -08:00
2020-12-29 22:22:02 -08:00
2020-12-11 11:12:40 -08:00
2020-12-11 11:12:40 -08:00
2020-12-11 11:12:40 -08:00
2022-02-07 16:17:18 -05:00
2022-01-14 12:40:49 -05:00
2022-01-25 10:33:39 -05:00
2020-06-11 12:23:11 -07:00
2021-12-16 13:43:15 -05:00
2020-12-29 22:22:02 -08:00
2020-12-29 22:22:02 -08:00
2020-12-29 22:22:02 -08:00
2020-12-11 11:12:40 -08:00
2020-12-11 11:12:40 -08:00
2020-12-11 11:12:40 -08:00
2021-01-05 21:51:10 -08:00
2021-01-05 21:51:10 -08:00
2021-01-05 21:51:10 -08:00
2021-01-05 22:32:39 -08:00
2021-01-05 22:32:39 -08:00
2021-01-05 22:32:39 -08:00
2020-09-03 22:00:17 -07:00
2020-12-29 22:22:02 -08:00
2020-12-29 22:22:02 -08:00
2020-12-29 22:22:02 -08:00
2021-05-13 19:02:00 +00:00
2021-05-13 19:02:00 +00:00