PSRLDQ
Cambio de doble cuádword derecho lógica
estableVMJITAOTinstruccion
Codificaciones
| Opcode | Instruccion | Op/En | 64 bits | Compat/Legacy | Descripcion |
|---|---|---|---|---|---|
66 0F 73 /3 ib | PSRLDQ xmm1, imm8 | A | Valido | Valido | Shift xmm1 a la derecha por imm8 mientras se desplaza en 0s. |
VEX.128.66.0F.WIG 73 /3 ib | VPSRLDQ xmm1, xmm2, imm8 | B | Valido | Valido | Shift xmm2 a la derecha por los bytes imm8 mientras se desplaza en 0s. |
VEX.256.66.0F.WIG 73 /3 ib | VPSRLDQ ymm1, ymm2, imm8 | B | Valido | Valido | Shift ymm1 a la derecha por los bytes imm8 mientras se desplaza en 0s. |
EVEX.128.66.0F.WIG 73 /3 ib | VPSRLDQ xmm1, xmm2/m128, imm8 | C | Valido | Valido | Shift xmm2/m128 derecha por imm8 bytes mientras AVX512BW) OR AVX10.1 desplazando en 0s y resultado de la tienda en xmm1. |
EVEX.256.66.0F.WIG 73 /3 ib | VPSRLDQ ymm1, ymm2/m256, imm8 | C | Valido | Valido | Shift ymm2/m256 derecha por imm8 bytes mientras AVX512BW) OR AVX10.1 desplazando en 0s y resultado de la tienda en ymm1. |
EVEX.512.66.0F.WIG 73 /3 ib | VPSRLDQ zmm1, zmm2/m512, imm8 | C | Valido | Valido | Shift zmm2/m512 derecho por imm8 bytes mientras OR AVX10.1 desplazando en 0s y resultado de la tienda en zmm1. |
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.rmlectura y escriturabyte ModRM, campo r/m (bits 2-0); con el byte SIB y el desplazamiento cuando el campo mod los pideimm8byte inmediato que sigue a la instruccion
B
vex.vvvvescrituraprefijo VEX, campo vvvv (invertido)modrm.rmlecturabyte ModRM, campo r/m (bits 2-0); con el byte SIB y el desplazamiento cuando el campo mod los pideimm8byte inmediato que sigue a la instruccion
C
evex.vvvvescrituraprefijo EVEX, campo vvvv (invertido)modrm.rmlecturabyte ModRM, campo r/m (bits 2-0); con el byte SIB y el desplazamiento cuando el campo mod los pideimm8byte inmediato que sigue a la instruccion
Tupla: Full Mem
Coste medido
Cargando las mediciones de arch-data...
Descripción
Shifts el operando de destino (primer operando) a la derecha por el número de bytes especificados en el conteo operando (segundo operando). Los bytes vacíos de alto orden se limpian (configurados a todos los 0s). Si el valor especificado por el conteo operando es mayor de 15, el operando de destino se establece a todos los 0s. El conteo operando es un inmediato de 8 bits.
En modo de 64 bits y no codificado con VEX/EVEX, utilizando un prefijo REX en forma de REX.R permite esta instrucción para acceder a registros adicionales (XMM8-XMM15).
128-bit Legacy SSE versión: La fuente y operandos de destino son los mismos. Bits (MAXVL-1:128) del correspondiente registro de destino YMM no se modifican.
VEX.128 versión codificada: La fuente y operandos de destino son registros XMM. Bits (MAXVL-1:128) del destino YMM registro se ponen a cero.
VEX.256 versión codificada: El operando de origen es un registro YMM. El operando de destino es un registro YMM. Bits (MAXVL-1:256) del registro ZMM correspondiente se ponen a cero. El conteo operando se aplica tanto a las líneas bajas como a las altas de 128 bits.
EVEX versiones codificadas: El operando de origen es un registro ZMM/YMM/XMM o un 512/256/128-bit ubicación de memoria. El operando de destino es un registro ZMM/YMM/XMM. El conteo operando se aplica a cada vía de 128 bits.
Nota: VEX.vvvv/EVEX.vvvv codifica el registro de destino.
Operación
VPSRLDQ (EVEX.512 Encoded Version)
TEMP := COUNT
IF (TEMP > 15) THEN TEMP := 16; FI
DEST[127:0] := SRC[127:0] >> (TEMP * 8)
DEST[255:128] := SRC[255:128] >> (TEMP * 8)
DEST[383:256] := SRC[383:256] >> (TEMP * 8)
DEST[511:384] := SRC[511:384] >> (TEMP * 8)
DEST[MAXVL-1:512] := 0;
VPSRLDQ (VEX.256 and EVEX.256 Encoded Version)
TEMP := COUNT
IF (TEMP > 15) THEN TEMP := 16; FI
DEST[127:0] := SRC[127:0] >> (TEMP * 8)
DEST[255:128] := SRC[255:128] >> (TEMP * 8)
DEST[MAXVL-1:256] := 0;
VPSRLDQ (VEX.128 and EVEX.128 Encoded Version)
TEMP := COUNT
IF (TEMP > 15) THEN TEMP := 16; FI
DEST := SRC >> (TEMP * 8)
DEST[MAXVL-1:128] := 0;
PSRLDQ (128-bit Legacy SSE Version)
TEMP := COUNT
IF (TEMP > 15) THEN TEMP := 16; FI
DEST := DEST >> (TEMP * 8)
DEST[MAXVL-1:128] (Unmodified)Intel C/C++ compilador intrínseco
(V)PSRLDQ __m128i _mm_srli_si128 ( __m128i a, int imm) VPSRLDQ __m256i _mm256_bsrli_epi128 ( __m256i, const int) VPSRLDQ __m512i _mm512_bsrli_epi128 ( __m512i, int);Banderas afectadas
None.
Excepciones numéricas
None.
Otras excepciones
Instrucciones no codificadas por EVEX, ver Tabla 2-24, "Tipo 7 Condiciones de Excepción de Clase." Instruccion codificada por EVEX, ver Excepciones Tipo E4NF.nb en Tabla 2-52, "Tipo E4NF Condiciones de Excepción de Clase".