Section courante

A propos

Section administrative du site

Assembleur 80x86

VPERMT2Q

INTEL AVX-512 Full Permute from Two Tables Overwriting one Table

Syntaxe

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

Description

Cette instruction permet de permuter les valeurs 64 bits dans le premier opérande et le troisième opérande (le second opérande source) en utilisant un indice dans le second opérande (le premier opérande source) vers les éléments sélectionné du premier et troisième opérande.

Algorithme

(KL, VL) = (2, 128), (4, 256), (8 512)
SI VL = 128 ALORS
   id ← 0
FIN SI
SI VL = 256 ALORS
   id ← 1
FIN SI
SI VL = 512 ALORS
   id ← 2
FIN SI
TMP_DEST ← DEST
BOUCLE POUR j ← 0 JUSQU'A KL-1
   ij x 64
   off ← 64 x SRC1[i + id:i]
   SI k1[j] OU *pas de masque d'écriture* ALORS
      SI (EVEX.b = 1) ET (SRC2 *est en mémoire*) ALORS
         DEST[i + 63:i] ← SRC1[i + id + 1] ? SRC2[63:0] : TMP_DEST[off + 63:off]
      SINON
         DEST[i + 63:i] ← SRC1[i + id + 1] ? SRC2[off + 63:off] : TMP_DEST[off + 63:off]
      FIN SI
   SINON
      SI *masque fusionné* ALORS
         DEST[i+63:i] reste inchangé
      SINON
         DEST[i+63:i] ← 0
      FIN SI
   FIN SI
FIN BOUCLE POUR
DEST[MAXVL-1:VL] ← 0

Mnémonique

Instruction Opcode Description
VPERMT2Q xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst EVEX.DDS.128.66.0F38.W1 7E /r Cette instruction permet de permuter les valeurs 64 bits dans le premier opérande et le troisième opérande (le second opérande source) en utilisant un indice dans le second opérande (le premier opérande source) vers les éléments sélectionné du premier et troisième opérande.
VPERMT2Q ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst EVEX.DDS.256.66.0F38.W1 7E /r Cette instruction permet de permuter les valeurs 64 bits dans le premier opérande et le troisième opérande (le second opérande source) en utilisant un indice dans le second opérande (le premier opérande source) vers les éléments sélectionné du premier et troisième opérande.
VPERMT2Q zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst EVEX.DDS.512.66.0F38.W1 7E /r Cette instruction permet de permuter les valeurs 64 bits dans le premier opérande et le troisième opérande (le second opérande source) en utilisant un indice dans le second opérande (le premier opérande source) vers les éléments sélectionné du premier et troisième opérande.


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