Assembleur 80x86 | VPERMB |
---|---|
INTEL AVX-512 | Permute Packed Bytes Elements |
Syntaxe
VPERMB Xmm1 {k1}{z}, Xmm2, Xmm3 |
Description
Cette instruction permet de copier les octets d'un second opérande source (le troisième opérande) vers l'opérande de destination (le premier opérande).
Algorithme
(KL, VL) = (16, 128), (32, 256), (64, 512) SI VL = 128 ALORS n ← 3 SINON VL = 256 ALORS n ← 4; SINON VL = 512 ALORS n ← 5; FIN SI BOUCLE POUR j ← 0 JUSQU'A KL-1 id ← SRC1[j x 8 + n : j x 8] ; emplacement de l'octet source SI k1[j] OU *pas de masque d'écriture* ALORS DEST[j x 8 + 7: j x 8] ← SRC2[id x 8 + 7: id x 8] SINON zeroing-masking 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 |
---|---|---|
VPERMB xmm1 {k1}{z}, xmm2, xmm3/m128 | EVEX.NDS.128.66.0F38.W0 8D /r | Cette instruction permet de copier les octets d'un second opérande source (le troisième opérande) vers l'opérande de destination (le premier opérande). |
VPERMB ymm1 {k1}{z}, ymm2, ymm3/m256 | EVEX.NDS.256.66.0F38.W0 8D /r | Cette instruction permet de copier les octets d'un second opérande source (le troisième opérande) vers l'opérande de destination (le premier opérande). |
VPERMB zmm1 {k1}{z}, zmm2, zmm3/m512 | EVEX.NDS.512.66.0F38.W0 8D /r | Cette instruction permet de copier les octets d'un second opérande source (le troisième opérande) vers l'opérande de destination (le premier opérande). |
Dernière mise à jour : Dimanche, le 23 avril 2017