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
2022-06-03 01:21:20 -04:00
2022-06-03 01:21:20 -04:00
2022-06-03 01:21:20 -04: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
2021-12-16 13:43:15 -05:00