This content has not been validated; it was AI-generated following the x86-64 ISA Documentation generation process to maintain high quality. However, as no human has verified this data, errors may exist. If the accuracy of this data is critical, please consult the Intel SDM. The model used to generate this is gemma4:31b
VFNMADD231PD
Computes a fused multiply-add operation for double-precision floating-point values. It calculates the result as: destination = -(a * b) + c, where the operands are mapped according to the 231 pattern (source1 * source2) is subtracted from source3.
The following table covers what the source and destinations can be.
| source | destination(s) |
|---|---|
| zmm/ymm/xmm reg, zmm/ymm/xmm reg, zmm/ymm/xmm reg | zmm/ymm/xmm reg |
| zmm/ymm/xmm reg, zmm/ymm/xmm reg, m128/m256/m512 | zmm/ymm/xmm reg |
| zmm/ymm/xmm reg, m128/m256/m512, zmm/ymm/xmm reg | zmm/ymm/xmm reg |
| m128/m256/m512, zmm/ymm/xmm reg, zmm/ymm/xmm reg | zmm/ymm/xmm reg |
DO NOT support LOCK
This instruction SHALL only be executed in 64-bit mode or 32-bit mode. It REQUIRES the AVX-512 foundation extensions. The instruction is not supported in compatibility mode.
The instruction is subject to floating-point exception flags. Results MAY trigger #P, #O, #U, or #D based on the MXCSR register settings. If the result is a NaN, the specific NaN type depends on the operands. To avoid precision loss or unexpected rounding, the user MUST ensure the rounding control field in MXCSR is correctly configured, as FMA operations perform a single rounding step at the end of the combined multiply-add sequence.