FMA x86 ist eine Befehlssatzerweiterung für Mikroprozessoren von Intel und AMD zur Unterstützung der Fused-Multiply-Add-Technik (FMA). Von AMD erfolgte hierzu erstmals eine Umsetzung in den „Bulldozer“-CPUs. Intel setzte dies erst in den Haswell-Prozessoren ein.
Es gibt zwei nicht miteinander kompatible Ausführungen, FMA4 und FMA3:
FMA erweitert die Möglichkeiten zu Vektoroperationen und kann als Erweiterung der AVX-Befehle gesehen werden.
| Mnemonic | Operanden | Operation |
|---|---|---|
| VFMADDPDx | xmm, xmm, xmm/m128, xmm/m128 | a = b∙c + d |
| VFMADDPDy | ymm, ymm, ymm/m256, ymm/m256 | |
| VFMADDPSx | xmm, xmm, xmm/m128, xmm/m128 | |
| VFMADDPSy | ymm, ymm, ymm/m256, ymm/m256 | |
| VFMADDSD | xmm, xmm, xmm/m64, xmm/m64 | |
| VFMADDSS | xmm, xmm, xmm/m32, xmm/m32 |
| Mnemonic | Operanden | Operation |
|---|---|---|
| VFMADD132PDy | ymm, ymm, ymm/m256 | a = a∙c + b |
| VFMADD132PSy | ||
| VFMADD132PDx | xmm, xmm, xmm/m128 | |
| VFMADD132PSx | ||
| VFMADD132SD | xmm, xmm, xmm/m64 | |
| VFMADD132SS | xmm, xmm, xmm/m32 | |
| VFMADD213PDy | ymm, ymm, ymm/m256 | a = b∙a + c |
| VFMADD213PSy | ||
| VFMADD213PDx | xmm, xmm, xmm/m128 | |
| VFMADD213PSx | ||
| VFMADD213SD | xmm, xmm, xmm/m64 | |
| VFMADD213SS | xmm, xmm, xmm/m32 | |
| VFMADD231PDy | ymm, ymm, ymm/m256 | a = b∙c + a |
| VFMADD231PSy | ||
| VFMADD231PDx | xmm, xmm, xmm/m128 | |
| VFMADD231PSx | ||
| VFMADD231SD | xmm, xmm, xmm/m64 | |
| VFMADD231SS | xmm, xmm, xmm/m32 |