[libc] Implement double precision FMA for targets without FMA instructions.
authorTue Ly <lntue@google.com>
Sun, 8 May 2022 22:27:34 +0000 (18:27 -0400)
committerTue Ly <lntue@google.com>
Sat, 11 Jun 2022 00:57:27 +0000 (20:57 -0400)
commitee8992770754d186c9217d35cccd339efc55a36b
tree46cb41269200d653815106112634de4db36d587e
parent4e53df0f0b57575d1707663467ba130a00420439
[libc] Implement double precision FMA for targets without FMA instructions.

Implement double precision FMA (Fused Multiply-Add) for targets without
FMA instructions using __uint128_t to store the intermediate results.

Reviewed By: michaelrj, sivachandra

Differential Revision: https://reviews.llvm.org/D124495
libc/src/__support/FPUtil/FMA.h
libc/src/__support/FPUtil/generic/FMA.h
libc/src/math/CMakeLists.txt
libc/test/src/math/CMakeLists.txt
libc/test/src/math/FmaTest.h
libc/test/src/math/fma_test.cpp
libc/test/src/math/fmaf_test.cpp