Jameson - 2021-11-17

You might want to pick up something like glibc (GNU) or openlibm (BSD) for the fma/fmaf/fmal algorithms from https://github.com/lattera/glibc/blob/master/sysdeps/ieee754/dbl-64/s_fma.c or
https://github.com/JuliaMath/openlibm/blob/master/src/s_fma.c
since you are missing a lot of edge cases for the fma algorithm that are critical to getting the rounding correct and avoiding double-rounding errors in the answer.

For example, this is another case we had come across in random testing, where mingw-w64 is giving the incorrect answer:
ASSERT(fmaf(-1.9369631e13f, 2.1513551e-7f, -1.7354427e-24f) == -4.1670958f6)