Section courante

A propos

Section administrative du site

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)
   tmpdestdest
   * 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
   desttmpdst
   dest[MAX_VL-1:VL] ← 0

MODULE V4FMADDPS dest{k1}, src1, msrc
   kl,vl = (16,512)
   regs_loaded ← 4
   src_basesrc_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