Source: Who is vfmaddrnd231pd??, by purplesyringa
Intel’s 2024 manual documents vfmaddrnd231pd, an FMA instruction that sets rounding per instruction. The GNU assembler, Clang and Intel's ICC don't know it, and a Haswell CPU rejects it. The 2026 manual no longer lists it.
The SDM calls it “Fused Multiply-Add of Packed Double-Precision Floating-Point Values with rounding control”. Its immediate byte holds bit fields for rounding, DAZ, FTZ and exception suppression.
Most x86 floating-point instructions use the global rounding mode, and changing that mode is slow. FMA can stand in for add, subtract and multiply, so one FMA with its own rounding would give any arithmetic controllable rounding without AVX-512.
The GNU assembler does not recognise the mnemonic.
_mm_fmaddround_pd and _mm256_fmaddround_pd, named in the SDM, are absent from Clang and from Intel’s own ICC.
The author builds the bytes from VEX.DDS.128.66.0F3A.W1 B8 /r /ib. This opcode is the only mention of DDS in that SDM.
The CPU raises #UD, undefined instruction.
The instruction is gone. The 2024 entry has its own tables and pseudocode, so it does not read like a typo.
One test call before the design, not after it.
Unknown. The author offers only a hypothesis and says there is no way to confirm it. This page does not guess.
| Case | Lesson | Rule now |
|---|---|---|
| vfmaddrnd231pd | A documented instruction can have no toolchain support and fault on real hardware. | Before designing around a documented instruction or API, assemble one call and run it on the hardware you ship to. |
| 2024 vs 2026 SDM | Documentation changes between editions. | If the call faults, change the plan before anyone builds on it. |
Who is vfmaddrnd231pd? by Alisa Sireneva (purplesyringa), October 12, 2026.
Sources: every fact on this page comes from the purplesyringa post above.