EXTRACTPS
Extracto Embalado valores en coma flotante
estableVMJITAOTinstruccion
Codificaciones
| Opcode | Instruccion | Op/En | 64 bits | Compat/Legacy | Descripcion |
|---|---|---|---|---|---|
66 0F 3A 17 /r ib | EXTRACTPS reg/m32, xmm1, imm8 | A | vv | Extraer un valor en coma flotante de precisión simple de xmm1 en el offset especificado por imm8 y almacenar el resultado en reg o m32. Zero extender los resultados en registro de 64 bits si es aplicable. | |
VEX.128.66.0F3A.WIG 17 /r ib | VEXTRACTPS reg/m32, xmm1, imm8 | A | Valido | Valido | Extraer un valor en coma flotante de precisión simple de xmm1 en el offset especificado por imm8 y almacenar el resultado en reg o m32. Zero extender los resultados en registro de 64 bits si es aplicable. |
EVEX.128.66.0F3A.WIG 17 /r ib | VEXTRACTPS reg/m32, xmm1, imm8 | B | Valido | Valido | Extraer un valor en coma flotante de precisión simple OR AVX10.1 de xmm1 en el offset especificado por imm8 y almacenar el resultado en reg o m32. Zero extender los resultados en registro de 64 bits si es aplicable. |
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.
A
modrm.rmescriturabyte ModRM, campo r/m (bits 2-0); con el byte SIB y el desplazamiento cuando el campo mod los pidemodrm.reglecturabyte ModRM, campo reg (bits 5-3)imm8byte inmediato que sigue a la instruccion
B
modrm.rmescriturabyte ModRM, campo r/m (bits 2-0); con el byte SIB y el desplazamiento cuando el campo mod los pidemodrm.reglecturabyte ModRM, campo reg (bits 5-3)imm8byte inmediato que sigue a la instruccion
Tupla: Tuple1 Scalar
Coste medido
Cargando las mediciones de arch-data...
Descripción
Extrae un valor en coma flotante de precisión simple del operando de origen (segundo operando) en el offset de 32 bits especificado de imm8. Se ignoran bits inmediatos superiores a la mas significativo offset para la longitud del vector.
El valor en coma flotante de precisión simple extraído se almacena en los bajos 32 bits del operando de destino
En modo de 64 bits, el registro de destino operando tiene tamaño de operando predeterminado de 64 bits. Los 32 bits superiores del registro están llenos de cero. REX.W es ignorado.
VEX.128 y EVEX versión codificada: Cuando VEX.W1 o EVEX.W1 se utiliza en modo de 64 bits con un registro de proposito general (GPR) como un operando de destino, la cantidad única empacada es cero extendida a 64 bits.
VEX.vvvv/EVEX.vvvv está reservado y debe ser 1111b instrucciones de lo contrario #UD.
128-bit Legacy SSE versión: Cuando un prefijo REX.W se utiliza en modo de 64 bits con un registro de proposito general (GPR) como un operando de destino, la cantidad única embalada es cero extendida a 64 bits.
El registro de origen es un registro XMM. Imm8[1:0] determina la compensación inicial DWORD de la cual extraer el valor en coma flotante de 32 bits.
Si VEXTRACTPS está codificado con VEX.L= 1, un intento de ejecutar la instrucción codificada con VEX.L= 1 causará una excepción #UD.
Operación
VEXTRACTPS (EVEX and VEX.128 Encoded Version)
SRC_OFFSET := IMM8[1:0]
IF (64-Bit Mode and DEST is register)
DEST[31:0] := (SRC[127:0] >> (SRC_OFFSET*32)) AND 0FFFFFFFFh
DEST[63:32] := 0
ELSE
DEST[31:0] := (SRC[127:0] >> (SRC_OFFSET*32)) AND 0FFFFFFFFh
FI
EXTRACTPS (128-bit Legacy SSE Version)
SRC_OFFSET := IMM8[1:0]
IF (64-Bit Mode and DEST is register)
DEST[31:0] := (SRC[127:0] >> (SRC_OFFSET*32)) AND 0FFFFFFFFh
DEST[63:32] := 0
ELSE
DEST[31:0] := (SRC[127:0] >> (SRC_OFFSET*32)) AND 0FFFFFFFFh
FIIntel C/C++ compilador intrínseco
EXTRACTPS int _mm_extract_ps (__m128 a, const int nidx);SIMD coma flotante Excepciones
None.
Otras excepciones
Instrucciones codificadas por VEX, ver Tabla 2-22, "Tipo 5 Condiciones de Excepción".
Instrucciones codificadas por EVEX, ver Tabla 2-59, "Tipo E9NF Clase Condiciones de Excepción."
Additionally:
#UD IF VEX.L = 0.#UD If VEX.vvvv != 1111B or EVEX.vvvv != 1111B.