As described on the Website (8.5. Fused Multiply-Add Functions), fused multiply-add always raises an invalid exception "if one of the multiplication operands a and b is infinite and the other is zero [...], even if operand c is a quiet NaN". That seems to be regardless of the chosen specialization.
However, all modern X86 CPUs from Intel or AMD do not raise the invalid exception for fma(0,infinity,qNaN).
This is also explicitly stated in "Intel® 64 and IA-32 Architectures Software Developer’s Manual".
Since the specialization 8086-SSE is supposed to model an Intel x86 processor with SSE, I wonder if this behavior of Berkeley SoftFloat is intended.
As described on the Website (8.5. Fused Multiply-Add Functions), fused multiply-add always raises an invalid exception "if one of the multiplication operands a and b is infinite and the other is zero [...], even if operand c is a quiet NaN". That seems to be regardless of the chosen specialization.
However, all modern X86 CPUs from Intel or AMD do not raise the invalid exception for
fma(0,infinity,qNaN).This is also explicitly stated in "Intel® 64 and IA-32 Architectures Software Developer’s Manual".
Since the specialization
8086-SSEis supposed to model an Intel x86 processor with SSE, I wonder if this behavior of Berkeley SoftFloat is intended.