Tue Ly
2ff187fbc9
[libc] Implement cosf function that is correctly rounded to all rounding modes.
Implement cosf function that is correctly rounded to all rounding
modes.
Performance benchmark using perf tool from CORE-MATH project
(https://gitlab.inria.fr/core-math/core-math/-/tree/master) on Ryzen 1700:
Before this patch (not correctly rounded):
```
$ CORE_MATH_PERF_MODE="rdtsc" ./perf.sh cosf
CORE-MATH reciprocal throughput : 19.043
System LIBC reciprocal throughput : 26.328
LIBC reciprocal throughput : 30.955
$ CORE_MATH_PERF_MODE="rdtsc" ./perf.sh cosf --latency
GNU libc version: 2.31
GNU libc release: stable
CORE-MATH latency : 49.995
System LIBC latency : 59.286
LIBC latency : 60.174
```
After this patch (correctly rounded):
```
$ CORE_MATH_PERF_MODE="rdtsc" ./perf.sh cosf
GNU libc version: 2.31
GNU libc release: stable
CORE-MATH reciprocal throughput : 19.072
System LIBC reciprocal throughput : 26.286
LIBC reciprocal throughput : 13.631
$ CORE_MATH_PERF_MODE="rdtsc" ./perf.sh cosf --latency
GNU libc version: 2.31
GNU libc release: stable
CORE-MATH latency : 49.872
System LIBC latency : 59.468
LIBC latency : 56.119
```
Reviewed By: orex, zimmermann6
Differential Revision: https://reviews.llvm.org/D130644