PSLLDQ

Cambio de doble cuádword izquierda lógica

estableVMJITAOTinstruccion

Codificaciones

OpcodeInstruccionOp/En64 bitsCompat/LegacyDescripcion
66 0F 73 /7 ibPSLLDQ xmm1, imm8AValidoValidoShift xmm1 dejado por los bytes imm8 mientras se desplaza en 0s.
VEX.128.66.0F.WIG 73 /7 ibVPSLLDQ xmm1, xmm2, imm8BValidoValidoShift xmm2 dejado por los bytes imm8 mientras que el cambio en 0s y el resultado de la tienda en xmm1.
VEX.256.66.0F.WIG 73 /7 ibVPSLLDQ ymm1, ymm2, imm8BValidoValidoShift ymm2 dejado por los bytes imm8 mientras que el cambio en 0s y el resultado de la tienda en ymm1.
EVEX.128.66.0F.WIG 73 /7 ibVPSLLDQ xmm1,xmm2/ m128, imm8CValidoValidoShift xmm2/m128 dejado por los bytes imm8 mientras AVX512BW) OR AVX10.1 desplazando en 0s y resultado de la tienda en xmm1.
EVEX.256.66.0F.WIG 73 /7 ibVPSLLDQ ymm1, ymm2/m256, imm8CValidoValidoShift ymm2/m256 dejado por los bytes imm8 mientras AVX512BW) OR AVX10.1 desplazando en 0s y resultado de la tienda en ymm1.
EVEX.512.66.0F.WIG 73 /7 ibVPSLLDQ zmm1, zmm2/m512, imm8CValidoValidoShift zmm2/m512 dejado por los bytes imm8 mientras OR AVX10.1 desplazando en 0s y el 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

  1. modrm.rm lectura y escriturabyte ModRM, campo r/m (bits 2-0); con el byte SIB y el desplazamiento cuando el campo mod los pide
  2. imm8byte inmediato que sigue a la instruccion

B

  1. vex.vvvv escrituraprefijo VEX, campo vvvv (invertido)
  2. modrm.rm lecturabyte ModRM, campo r/m (bits 2-0); con el byte SIB y el desplazamiento cuando el campo mod los pide
  3. imm8byte inmediato que sigue a la instruccion

C

  1. evex.vvvv escrituraprefijo EVEX, campo vvvv (invertido)
  2. modrm.rm lecturabyte ModRM, campo r/m (bits 2-0); con el byte SIB y el desplazamiento cuando el campo mod los pide
  3. imm8byte 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 izquierda por el número de bytes especificados en el conteo operando (segundo operando). Los bytes vacíos de baja 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.

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 el 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.

Operación

VPSLLDQ (EVEX.U1.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

VPSLLDQ (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

VPSLLDQ (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

PSLLDQ(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)PSLLDQ __m128i _mm_slli_si128 ( __m128i a, int imm) VPSLLDQ __m256i _mm256_slli_si256 ( __m256i a, const int imm) VPSLLDQ __m512i _mm512_bslli_epi128 ( __m512i a, const int imm);

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".

Fuentes