Assembleur 80x86 | VPERM2F128 |
---|---|
AVX (AMD ou INTEL) | Vector Permute 128 bits Floating-Point Values |
Syntaxe
VPERM2F128 destination, source1, source2, imm8 |
Paramètres
Nom | Description | |
---|---|---|
destination | Ce paramètre permet de retourner le résultat de l'opération, lequel doit être un registre YMM. | |
source1 | Ce paramètre permet d'indiquer le premier opérande, lequel doit être un registre YMM. | |
source2 | Ce paramètre permet d'indiquer le deuxième opérande, soit un registre YMM ou un emplacement de mémoire de 256 bits. | |
imm8 | Ce paramètre permet d'indiquer le champ de contrôle en 8 bits, selon le format suivant : | |
Bits | Description | |
0 à 1 | Ces bits permettent de sélectionner la source du premier champ de 128 bits de destination. | |
3 | Ce bit permet d'indiquer si le champ de 128 bits le plus bas est mis à zéro (1) ou pas (0). | |
4 à 5 | Ces bits permettent de sélectionner la source du deuxième champ de destination. | |
7 | Ce bit permet d'indiquer si le champ de 128 bits le plus haut est mis à zéro (1) ou pas (0). |
Description
Cette instruction permet d'effectuer la permutation de valeurs réel de 128 bits d'un premier opérande source utilisant un champ de 8 bits de contrôle dans les octets bas d'un second opérande source et entrepose les résultats dans l'opérande de destination.
Remarque
- Le VEX.L doit être 1, sinon une exception d'instruction #UD sera déclenché.
Algorithme
MODULE VPERM2F128(destination, source1, source2, imm8) EVALUER CAS imm8(1..0) CAS 0: destination(127..0) ← source1(127..0) CAS 1: destination(127..0) ← source1(255..128) CAS 2: destination(127..0) ← source2(127..0) CAS 3: destination(127..0) ← source2(255..128) FIN EVALUER CAS EVALUER CAS imm8(5..4) CAS 0: destination(255..128) ← source1(127..0) CAS 1: destination(255..128) ← source1(255..128) CAS 2: destination(255..128) ← source2(127..0) CAS 3: destination(255..128) ← source2(255..128) FIN EVALUER CAS SI imm8(3) ALORS destination(127..0) ← 0 FIN SI SI imm8(7) ALORS destination(255..128) ← 0 FIN SI |
Mnémonique
Instruction | Opcode | Description |
---|---|---|
VPERMILPS xmm1, xmm2,xmm3/m128 | (VEX.NDS.256) 66h 0Fh 3Ah W0 06h /r ib | Cette instruction permet d'effectuer la permutation de valeurs réel de 128 bits d'un premier opérande source utilisant un champ de 8 bits de contrôle dans les octets bas d'un second opérande source et entrepose les résultats dans l'opérande de destination. |
Exceptions
Message | Description |
---|---|
#UD(Opcode invalide) | SI VEX.L = 0 SI VEX.W = 1 |
Dernière mise à jour : Samedi, le 2 août 2014