В соответствии с документацией в math.h есть функция fma(). Это очень приятно, и я знаю, как работает FMA и для чего его использовать. Однако я не уверен, как это реализовано на практике? Меня больше всего интересуют архитектуры x86 и x86_64.
Есть ли инструкция FMA с плавающей точкой (не вектор), возможно, как определено в IEEE-754 2008?
Используется ли инструкция FMA3 или FMA4?
Существует ли внутренняя цель убедиться, что используется реальная FMA, когда на точность полагается?