Section courante

A propos

Section administrative du site

Assembleur 80x86

VPERMILPS

AVX (AMD ou INTEL) Vector Permute Single-Precision Floating-Point Values

Syntaxe

VPERMILPS destination, source1, source2

Description

Cette instruction permet d'effectuer la permutation de valeurs réels de simple précision 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.

Algorithme

MODULE Select4(SRC, control)
   EVALUER CAS control(1..0)
      CAS 0: TMP ← SRC(31..0)
      CAS 1: TMP ← SRC(63..32)
      CAS 2: TMP ← SRC(95..64)
      CAS 3: TMP ← SRC(127..96)
   FIN EVALUER CAS
   RETOURNER TMP

SI version immediate 256 bits ALORS
   destination(31..0) ← Select4(source1(127..0), imm8(1..0))
   destination(63..32) ← Select4(source1(127..0), imm8(3..2))
   destination(95..64) ← Select4(source1(127..0), imm8(5..4))
   destination(127..96) ← Select4(source1(127..0), imm8(7..6))
   destination(159..128) ← Select4(source1(255..128), imm8(1..0))
   destination(191..160) ← Select4(source1(255..128), imm8(3..2))
   destination(223..192) ← Select4(source1(255..128), imm8(5..4))
   destination(255..224) ← Select4(source1(255..128), imm8(7..6))
SINON SI version immediate 128 bits ALORS
   destination(31..0) ← Select4(source1(127..0), imm8(1..0))
   destination(63..32) ← Select4(source1(127..0), imm8(3..2))
   destination(95..64) ← Select4(source1(127..0), imm8(5..4))
   destination(127..96) ← Select4(source1(127..0), imm8(7..6))
   destination(255..128) ← 0
SINON SI version variable 256 bits ALORS
   destination(31..0) ← Select4(source1(127..0), source2(1..0))
   destination(63..32) ← Select4(source1(127..0), source2(33..32))
   destination(95..64) ← Select4(source1(127..0), source2(65..64))
   destination(127..96) ← Select4(source1(127..0), source2(97..96))
   destination(159..128) ← Select4(source1(255..128), source2(129..128))
   destination(191..160) ← Select4(source1(255..128), source2(161..160))
   destination(223..192) ← Select4(source1(255..128), source2(193..192))
   destination(255..224) ← Select4(source1(255..128), source2(225..224))
SINON SI version variable 128 bits ALORS
   destination(31..0) ← Select4(source1(127..0), source2(1..0))
   destination(63..32) ← Select4(source1(127..0), source2(33..32))
   destination(95..64) ← Select4(source1(127..0), source2(65..64))
   destination(127..96) ← Select4(source1(127..0), source2(97..96))
   destination(255..128) ← 0
FIN SI

Mnémonique

Instruction Opcode Description
VPERMILPS xmm1, xmm2,xmm3/m128 (VEX.NDS.128) 66h 0Fh 38h 0Ch /r Cette instruction permet d'effectuer la permutation de valeurs réels de simple précision 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.
VPERMILPS xmm1,xmm2/m128, imm8 (VEX.128) 66h 0Fh 3Ah 04h /r ib Cette instruction permet d'effectuer la permutation de valeurs réels de simple précision 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.
VPERMILPS ymm1, ymm2,ymm3/m256 (VEX.NDS.256) 66h 0Fh 38h 0Ch /r Cette instruction permet d'effectuer la permutation de valeurs réels de simple précision 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.
VPERMILPS ymm1,ymm2/m256, imm8 (VEX.256) 66h 0Fh 3Ah 04h /r ib Cette instruction permet d'effectuer la permutation de valeurs réels de simple précision 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.


Dernière mise à jour : Samedi, le 2 août 2014