MOVMSKPS
Extracto Empaquetado coma flotante de precisión simple Sign Mask
estableVMJITAOTinstruccion
Codificaciones
| Opcode | Instruccion | Op/En | 64 bits | Compat/Legacy | Descripcion |
|---|---|---|---|---|---|
NP 0F 50 /r | MOVMSKPS reg, xmm | RM | Valido | Valido | Extraer máscara de 4 bits de xmm y almacenar en reg. Los bits superiores de r32 o r64 están llenos de ceros. |
VEX.128.0F.WIG 50 /r | VMOVMSKPS reg, xmm2 | RM | Valido | Valido | Extraiga la máscara de 4 bits de xmm2 y almacene en reg. Los bits superiores de r32 o r64 se ponen a cero. |
VEX.256.0F.WIG 50 /r | VMOVMSKPS reg, ymm2 Op/En Operand 1 RM ModRM:reg (w) | RM | Valido | Valido | Extracto máscara de 8 bits de ymm2 y almacén en reg. Los bits superiores de r32 o r64 se ponen a cero. Ucción de instr operando Codificación 1 O perand 2 operando 3 operando 4 ModRM :r/m (r) N/A N/A |
Codificacion de operandos
Cada modo es un valor de la columna Op/En de arriba. Dice en que campo de la instruccion codificada va cada operando, en el orden en que se escriben, y si la instruccion lo lee, lo escribe o ambas cosas.
RM
modrm.regescriturabyte ModRM, campo reg (bits 5-3)modrm.rmlecturabyte ModRM, campo r/m (bits 2-0); con el byte SIB y el desplazamiento cuando el campo mod los pide
Coste medido
Cargando las mediciones de arch-data...
Descripción
Extrae los bits de señal de los valores en coma flotante de precisión simple empaquetados en el operando de origen (segundo operando), los convierte en una máscara de 4 o 8 bits, y almacena la máscara en el operando de destino (primer operando). El operando de origen es un registro XMM o YMM, y el operando de destino es un registro de proposito general. La máscara se almacena en los 4 o 8 bits de orden bajo del operando de destino. Las partes superiores del operando de destino más allá de la máscara están llenas de ceros.
En modo de 64 bits, la instrucción puede acceder a registros adicionales (XMM8-XMM15, R8-R15) cuando se utiliza con un prefijo REX.R. El tamaño de operando predeterminado es de 64 bits en modo 64-bit.
Versión 128-bit: El operando de origen es un registro YMM. El operando de destino es un registro de proposito general.
VEX.256 versión codificada: El operando de origen es un registro YMM. El operando de destino es un registro de proposito general.
Nota: En VEX-versiones codificadas, VEX.vvvv está reservado y debe ser 1111b, de lo contrario las instrucciones #UD.
Operación
DEST[0] := SRC[31];
DEST[1] := SRC[63];
DEST[2] := SRC[95];
DEST[3] := SRC[127];
IF DEST = r32
THEN DEST[31:4] := ZeroExtend;
ELSE DEST[63:4] := ZeroExtend;
FI;
1. ModRM.MOD = 011B required
(V)MOVMSKPS (128-bit version)
DEST[0] := SRC[31]
DEST[1] := SRC[63]
DEST[2] := SRC[95]
DEST[3] := SRC[127]
IF DEST = r32
THEN DEST[31:4] := 0;
ELSE DEST[63:4] := 0;
FI
VMOVMSKPS (VEX.256 encoded version)
DEST[0] := SRC[31]
DEST[1] := SRC[63]
DEST[2] := SRC[95]
DEST[3] := SRC[127]
DEST[4] := SRC[159]
DEST[5] := SRC[191]
DEST[6] := SRC[223]
DEST[7] := SRC[255]
IF DEST = r32
THEN DEST[31:8] := 0;
ELSE DEST[63:8] := 0;
FIIntel C/C++ compilador intrínseco
int _mm_movemask_ps(__m128 a) int _mm256_movemask_ps(__m256 a);SIMD coma flotante Excepciones
None.
Otras excepciones
Ver Tabla 2-24, "Tipo 7 Condiciones de Excepción", además:
#UD If VEX.vvvv 1111B.