Assembleur 80x86 | V4FMADDPS |
---|---|
INTEL AVX-512 | Packed Single-Precision Floating-Point Fused Multiply-Add |
Syntaxe
V4FMADDPS zmm1{k1}{z}, zmm2+3, m128 |
Description
Cette instruction permet de multiplier des paquets de valeurs réel de simple précision d'un bloc de registre source par les valeurs 128-bits spécifié et retourne le résultat.
Algorithme
src_reg_id est l'index de 5 bits du registre vectoriel spécifié dans l'instruction en tant que registre src1. MODULE NFMA_PS(kl, vl, dest, k1, msrc, regs_loaded, src_base, posneg) tmpdest ← dest * reg[] est un tableau représentant le fichier de registre SIMD BOUCLE POUR j ← 0 JUSQU'A regs_loaded-1 BOUCLE POUR i ← 0 JUSQU'A kl-1 SI k1[i] OU pas de masque d'écriture ALORS SI posneg = 0 ALORS tmpdest.single[i] ← RoundFPControl_MXCSR(tmpdest.single[i] - reg[src_base + j ].single[i] x msrc.single[j]) SINON tmpdest.single[i] ← RoundFPControl_MXCSR(tmpdest.single[i] + reg[src_base + j ].single[i] x msrc.single[j]) FIN SI SINON SI remplit de zéro ALORS tmpdest.single[i] ← 0 FIN SI FIN BOUCLE POUR i FIN BOUCLE POUR j dest ← tmpdst dest[MAX_VL-1:VL] ← 0 MODULE V4FMADDPS dest{k1}, src1, msrc kl,vl = (16,512) regs_loaded ← 4 src_base ← src_reg_id ∩ ~3 * Pour la source1 de l'opérande posneg ← 0 SI forme négative, SINON 1 APPELER NFMA_PS(kl, vl, dest, k1, msrc, regs_loaded, src_base, posneg) |
Mnémonique
Instruction | Opcode | Description |
---|---|---|
V4FMADDPS zmm1{k1}{z}, zmm2+3, m128 | EVEX.DDS.512.F2.0F38.W0 9A /r | Cette instruction permet de multiplier des paquets de valeurs réel de simple précision d'un bloc de registre source par les valeurs 128-bits spécifié et retourne le résultat. |
Exceptions
Message | Description |
---|---|
#UD | Si le bit de diffusion EVEX est fixé sur 1. |
#UD | Si le MODRM.mod = 0b11. |
Dernière mise à jour : Dimanche, le 23 avril 2017