BLENDPD

Blend valores en coma flotante de precisión doble empaquetados

estableVMJITAOTinstruccion

Codificaciones

OpcodeInstruccionOp/En64 bitsCompat/LegacyDescripcion
66 0F 3A 0D /r ibBLENDPD xmm1, xmm2/m128, imm8RMIValidoValidoSeleccione valores en coma flotante de precisión doble empaquetados de xmm1 y xmm2/m128 de máscara especificada en imm8 y almacene los valores en xmm1.
VEX.128.66.0F3A.WIG 0D /r ibVBLENDPD xmm1, xmm2, xmm3/m128, imm8RVMIValidoValidoSeleccione valores en coma flotante de precisión doble empaquetados de xmm2 y xmm3/m128 de máscara en imm8 y almacene los valores en xmm1.
VEX.256.66.0F3A.WIG 0D /r ibVBLENDPD ymm1, ymm2, ymm3/m256, imm8RVMIValidoValidoSeleccione valores en coma flotante de precisión doble empaquetados de ymm2 y ymm3/m256 de máscara en imm8 y almacene los valores en ymm1.

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.

RMI

  1. modrm.reg lectura y escriturabyte ModRM, campo reg (bits 5-3)
  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

RVMI

  1. modrm.reg escriturabyte ModRM, campo reg (bits 5-3)
  2. vex.vvvv lecturaprefijo VEX, campo vvvv (invertido)
  3. modrm.rm lecturabyte ModRM, campo r/m (bits 2-0); con el byte SIB y el desplazamiento cuando el campo mod los pide
  4. imm8.low

Coste medido

Cargando las mediciones de arch-data...

Descripción

Valores en coma flotante de precisión doble del segundo operando de origen (tercer operando) se fusionan condicionalmente con valores del primer operando de origen (segundo operando) y escrito al operando de destino (primer operando). Los bits inmediatos [3:0] determinan si el valor en coma flotante de precisión doble correspondiente en el destino es copiado de la segunda fuente o primera fuente. Si un poco en la máscara, correspondiente a una palabra, es "1", entonces el valor en coma flotante de precisión doble en el segundo operando de origen es copiado, de lo contrario el valor en el primer operando de origen es copiado.

128-bit Legacy SSE versión: La segunda fuente puede ser un registro XMM o una ubicación de memoria de 128 bits. El destino no es distinto del registro XMM de primera fuente y los bits superiores (MAXVL-1:128) del destino de registro YMM correspondiente no son modificados.

VEX.128 versión codificada: el primer operando de origen es un registro XMM. El segundo operando de origen es un registro XMM o 128 bits ubicación de memoria. El operando de destino es un registro XMM. Los bits superiores (MAXVL-1:128) del destino de registro YMM correspondiente se ponen a cero.

VEX.256 versión codificada: El primer operando de origen es un registro YMM. El segundo operando de origen puede ser un registro YMM o una ubicación de memoria de 256 bits. El operando de destino es un registro YMM.

Operación

BLENDPD (128-bit Legacy SSE Version)
IF (IMM8[0] = 0)THEN DEST[63:0] := DEST[63:0]

          ELSE DEST [63:0] := SRC[63:0] FI
IF (IMM8[1] = 0) THEN DEST[127:64] := DEST[127:64]

          ELSE DEST [127:64] := SRC[127:64] FI
DEST[MAXVL-1:128] (Unmodified)

VBLENDPD (VEX.128 Encoded Version)
IF (IMM8[0] = 0)THEN DEST[63:0] := SRC1[63:0]

          ELSE DEST [63:0] := SRC2[63:0] FI
IF (IMM8[1] = 0) THEN DEST[127:64] := SRC1[127:64]

          ELSE DEST [127:64] := SRC2[127:64] FI
DEST[MAXVL-1:128] := 0


VBLENDPD (VEX.256 Encoded Version)
IF (IMM8[0] = 0)THEN DEST[63:0] := SRC1[63:0]

          ELSE DEST [63:0] := SRC2[63:0] FI
IF (IMM8[1] = 0) THEN DEST[127:64] := SRC1[127:64]

          ELSE DEST [127:64] := SRC2[127:64] FI
IF (IMM8[2] = 0) THEN DEST[191:128] := SRC1[191:128]

          ELSE DEST [191:128] := SRC2[191:128] FI
IF (IMM8[3] = 0) THEN DEST[255:192] := SRC1[255:192]

          ELSE DEST [255:192] := SRC2[255:192] FI

Intel C/C++ compilador intrínseco

BLENDPD __m128d _mm_blend_pd (__m128d v1, __m128d v2, const int mask);
VBLENDPD __m256d _mm256_blend_pd (__m256d a, __m256d b, const int mask);

SIMD coma flotante Excepciones

None.

Otras excepciones

Ver Tabla 2-21, "Tipo 4 Condiciones de Excepción".

Fuentes