Assembleur 80x86 | VPERMT2D |
---|---|
INTEL AVX-512 | Full Permute from Two Tables Overwriting one Table |
Syntaxe
VPERMT2D Xmm1 {k1}{z}, Xmm2, Xmm3 |
Description
Cette instruction permet de permuter les valeurs 32 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) = (4, 128), (8, 256), (16, 512) SI VL = 128 ALORS id ← 1 FIN SI SI VL = 256 ALORS id ← 2 FIN SI SI VL = 512 ALORS id ← 3 FIN SI TMP_DEST ← DEST BOUCLE POUR j ← 0 JUSQU'A KL-1 i ← j x 32 off ← 32 x SRC1[i + id:i] SI k1[j] OU *pas de masque d'écriture* ALORS SI (EVEX.b = 1) ET (SRC2 est de la mémoire ALORS DEST[i + 31:i] ← SRC1[i + id + 1] ? SRC2[31:0] : TMP_DEST[off + 31:off] SINON DEST[i + 31:i] ← SRC1[i + id + 1] ? SRC2[off + 31:off] : TMP_DEST[off + 31:off] FIN SI SINON SI *fusionne le masque* ALORS DEST[i + 31:i] reste inchangé SINON DEST[i + 31:i] ← 0 FIN SI FIN SI FIN BOUCLE POUR DEST[MAXVL-1:VL] ? 0 |
Mnémonique
Instruction | Opcode | Description |
---|---|---|
VPERMT2D xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst | EVEX.DDS.128.66.0F38.W0 7E /r | Cette instruction permet de permuter les valeurs 32 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. |
VPERMT2D ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst | EVEX.DDS.256.66.0F38.W0 7E /r | Cette instruction permet de permuter les valeurs 32 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. |
VPERMT2D zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst | EVEX.DDS.512.66.0F38.W0 7E /r | Cette instruction permet de permuter les valeurs 32 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