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-06-03 01:21:20 -04:00
2022-02-08 18:32:18 +00:00
2021-08-23 18:17:20 +00:00
2022-03-04 17:29:49 +00:00
2022-03-04 17:29:49 +00:00
2022-03-04 14:09:47 -05:00
2021-12-07 10:49:47 -08:00
2022-06-03 15:57:48 -04:00
2022-06-02 01:47:24 +00:00
2022-03-04 17:29:49 +00:00
2022-05-31 13:59:19 -07:00
2022-03-23 16:44:15 -07:00
2022-06-01 13:34:36 +00:00
2022-03-04 17:29:49 +00:00
2022-06-01 17:36:58 +00:00
2022-03-04 17:29:49 +00:00
2022-03-15 16:24:48 +00:00
2021-12-09 00:19:25 +00:00
2022-04-04 18:11:12 +00:00