LockerGnomeFor serious tech professionals with a silly side.
Subscribe

Developer Talesintelcpu

Intel documented a CPU instruction its own chip refuses to run, then dropped it from the manual

Intel's own manual described a processor instruction called VFMADDRND231PD, and when a programmer ran it on an Intel chip that should support it, the chip refused.

Intel’s own manual described a processor instruction called VFMADDRND231PD, and when a programmer ran it on an Intel chip that should support it, the chip refused. The programmer, who blogs as purplesyringa, ran it on a Haswell processor and got an “UnDefined instruction” fault. Then the blog found the 2026 edition of Intel’s manual without it, though the 2024 edition still had it.

An unofficial x86 reference built from the December 2023 edition of Intel’s Software Developer’s Manual still carries its full page: an opcode, the FMA feature flag it requires, and a description of how it multiplies, adds and rounds two or four numbers at once (felixcloutier.com).

The point of it was rounding control on each instruction. Purplesyringa explains that most x86 math uses one global rounding setting that is slow to change, and this instruction would have let the rounding be set on every call, which “effectively allows any arithmetic to have controllable rounding without AVX-512,” making some rounding-heavy algorithms “incredibly faster” (purplesyringa’s blog).

The GNU assembler doesn’t recognize it. The compiler functions the manual names for it are missing from Clang and from Intel’s own compiler. Its opcode uses a label, DDS, that purplesyringa says appears nowhere else in the manual. And the manual lists it alone, without the sibling versions other FMA instructions come with.

If you write low-level code from the manual, check an instruction against your assembler and run it on real hardware before you build on it. Purplesyringa’s assembler refused it first, running it on a Haswell confirmed the suspicion, and the newer edition of the manual came last.

Purplesyringa’s best guess is that Intel planned the instruction, found a problem late and pulled it from the chip without fixing the documentation, and says there’s no way to confirm that. The blog ends with an open call to anyone who has a friend at Intel, and I’d like to hear that answer too.

More Developer Tales

Every Developer Tales story →