Section courante

A propos

Section administrative du site

Assembleur 80x86

VPERMB

INTEL AVX-512 Permute Packed Bytes Elements

Syntaxe

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

Description

Cette instruction permet de permuter les valeurs 64 bits de réel de double précision 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. Les éléments sélectionnés sont écrits dans l'opérande de destination (le premier opérande) conformément au masque d'écriture k1. Les premier et second opérandes sont des registres ZMM/YMM/XMM. Le deuxième opérande contient des index d'entrée permettant de sélectionner des éléments parmi les 2 tables d'entrée des opérandes 1 et 3. Le premier opérande est également la destination du résultat.

Remarque

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
VPERMT2PD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst EVEX.DDS.128.66.0F38.W1 7F /r Cette instruction permet de permuter les valeurs 64 bits de réel de double précision 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.
VPERMT2PD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst EVEX.DDS.256.66.0F38.W1 7F /r Cette instruction permet de permuter les valeurs 64 bits de réel de double précision 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.
VPERMT2PD zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst EVEX.DDS.512.66.0F38.W1 7F /r Cette instruction permet de permuter les valeurs 64 bits de réel de double précision 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 21 octobre 2018