Section courante

A propos

Section administrative du site

Assembleur 80x86

VPERMI2B

INTEL AVX-512 Full Permute of Bytes from Two Tables Overwriting the Index

Syntaxe

VPERMI2B Xmm1 {k1}{z}, Xmm2, Xmm3

Description

Cette instruction permet de permuter les valeurs d'octet dans le second opérande (le premier opérande source) et le troisième opérande (le second opérande source) en utilisant l'indice d'octet dans le premier opérande (l'opérande de destination) vers les éléments d'octet sélectionné d'un second ou troisième opérande.

Algorithme

(KL, VL) = (16, 128), (32, 256), (64, 512)
SI VL = 128 ALORS
   id ← 3
SINON VL = 256 ALORS
   id ← 4
SINON VL = 512 ALORS
   id ← 5
FIN SI
TMP_DEST[VL-1:0] ← DEST[VL-1:0]
BOUCLE POUR j ← 0 JUSQU'A KL-1
   off ← 8 x SRC1[j x 8 + id: j x 8]
   SI k1[j] OU *pas de masque d'écriture* ALORS
      DEST[j x 8 + 7: j x 8] ← TMP_DEST[j x 8 + id + 1] ? SRC2[off + 7:off] : SRC1[off + 7:off]
   SINON *masque à zéro* ALORS
      DEST[j x 8 + 7: j x 8] ← 0
   SINON
      DEST[j x 8 + 7: j x 8] reste inchangé
   FIN SI
FIN BOUCLE POUR
DEST[MAX_VL-1:VL] ← 0

Mnémonique

Instruction Opcode Description
VPERMI2B xmm1 {k1}{z}, xmm2, xmm3/m128 EVEX.DDS.128.66.0F38.W0 75 /r Cette instruction permet de permuter les valeurs d'octet dans le second opérande (le premier opérande source) et le troisième opérande (le second opérande source) en utilisant l'indice d'octet dans le premier opérande (l'opérande de destination) vers les éléments d'octet sélectionné d'un second ou troisième opérande.
VPERMI2B ymm1 {k1}{z}, ymm2, ymm3/m256 EVEX.DDS.256.66.0F38.W0 75 /r Cette instruction permet de permuter les valeurs d'octet dans le second opérande (le premier opérande source) et le troisième opérande (le second opérande source) en utilisant l'indice d'octet dans le premier opérande (l'opérande de destination) vers les éléments d'octet sélectionné d'un second ou troisième opérande.
VPERMI2B zmm1 {k1}{z}, zmm2, zmm3/m512 EVEX.DDS.512.66.0F38.W0 75 /r Cette instruction permet de permuter les valeurs d'octet dans le second opérande (le premier opérande source) et le troisième opérande (le second opérande source) en utilisant l'indice d'octet dans le premier opérande (l'opérande de destination) vers les éléments d'octet sélectionné d'un second ou troisième opérande.


Dernière mise à jour : Dimanche, le 23 avril 2017