Assembleur 80x86 | VPMULTISHIFTQB |
---|---|
INTEL AVX-512 | Select Packed Unaligned Bytes from Quadword Sources |
Syntaxe
VPMULTISHIFTQB 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) = (2, 128),(4, 256), (8, 512) BOUCLE POUR i ← 0 JUSQU'A KL-1 SI EVEX.b=1 ET src2 est en mémoire ALORS tcur ← src2.qword[0] SINON tcur ← src2.qword[i] FIN SI BOUCLE POUR j ← 0 JUSQU'A 7 ctrl ← src1.qword[i].byte[j] ∩ 63 BOUCLE POUR k ← 0 JUSQU'A 7 res.bit[k] ← tcur.bit[ (ctrl + k) mod 64 ] FIN BOUCLE POUR SI k1[i x 8 + j] OU pas de masque d'écriture ALORS dst.qword[i].byte[j] ← res SINON zeroing-masking ALORS dst.qword[i].byte[j] ← 0 FIN SI FIN BOUCLE POUR FIN BOULE POUR DEST.qword[MAX_VL-1:VL] ← 0 |
Mnémonique
Instruction | Opcode | Description |
---|---|---|
VPMULTISHIFTQB xmm1 {k1}{z}, xmm2,xmm3/m128/m64bcst | EVEX.NDS.128.66.0F38.W1 83 /r | Cette instruction permet de sélectionner 8 octets non-alignés de chaque entrée d'élément quadruple mot du second opérande source (le troisième opérande) et écrit 8 octets assemblés pour chaque élément quadruple mot dans l'opérande de destination (le premier opérande). |
VPMULTISHIFTQB ymm1 {k1}{z}, ymm2,ymm3/m256/m64bcst | EVEX.NDS.256.66.0F38.W1 83 /r | Cette instruction permet de sélectionner 8 octets non-alignés de chaque entrée d'élément quadruple mot du second opérande source (le troisième opérande) et écrit 8 octets assemblés pour chaque élément quadruple mot dans l'opérande de destination (le premier opérande). |
VPMULTISHIFTQB zmm1 {k1}{z}, zmm2,zmm3/m512/m64bcst | EVEX.NDS.512.66.0F38.W1 83 /r | Cette instruction permet de sélectionner 8 octets non-alignés de chaque entrée d'élément quadruple mot du second opérande source (le troisième opérande) et écrit 8 octets assemblés pour chaque élément quadruple mot dans l'opérande de destination (le premier opérande). |
Dernière mise à jour : Dimanche, le 23 avril 2017