[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

GitOrigin-RevId: ee8992770754d186c9217d35cccd339efc55a36b
7 files changed