KADDW, KADDB, KADDQ, KADDD

ADD Dos máscaras

estableVMJITAOTinstruccion

Codificaciones

OpcodeInstruccionOp/En64 bitsCompat/LegacyDescripcion
VEX.L1.0F.W0 4A /rKADDW k1, k2, k3RVRValidoValidoAñadir 16 bits máscaras en k2 y k3 y el resultado del lugar en k1. OR AVX10.1
VEX.L1.66.0F.W0 4A /rKADDB k1, k2, k3RVRValidoValidoAñadir 8 bits máscaras en k2 y k3 y el resultado del lugar en k1. OR AVX10.1
VEX.L1.0F.W1 4A /rKADDQ k1, k2, k3RVRValidoValidoAñadir 64 bits máscaras en k2 y k3 y el resultado del lugar en k1. OR AVX10.1
VEX.L1.66.0F.W1 4A /rKADDD k1, k2, k3RVRValidoValidoAñadir 32 bits máscaras en k2 y k3 y el resultado del lugar en k1. OR AVX10.1

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.

RVR

  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

Coste medido

Cargando las mediciones de arch-data...

Descripción

Añade la máscara vectorial k2 y la máscara vectorial k3, y escribe el resultado en máscara vectorial k1.

Operación

KADDW
DEST[15:0] := SRC1[15:0] + SRC2[15:0]
DEST[MAX_KL-1:16] := 0

KADDB
DEST[7:0] := SRC1[7:0] + SRC2[7:0]
DEST[MAX_KL-1:8] := 0

KADDQ
DEST[63:0] := SRC1[63:0] + SRC2[63:0]
DEST[MAX_KL-1:64] := 0

KADDD
DEST[31:0] := SRC1[31:0] + SRC2[31:0]
DEST[MAX_KL-1:32] := 0

Intel C/C++ compilador intrínseco

KADDW __mmask16 _kadd_mask16 (__mmask16 a, __mmask16 b);
KADDB __mmask8 _kadd_mask8 (__mmask8 a, __mmask8 b);
KADDQ __mmask64 _kadd_mask64 (__mmask64 a, __mmask64 b);
KADDD __mmask32 _kadd_mask32 (__mmask32 a, __mmask32 b);

Banderas afectadas

None.

SIMD coma flotante Excepciones

None.

Otras excepciones

Ver Tabla 2-65, "TYPE K20 Excepción Definición (VEX-Encoded OpMask Instrucciones w/o Memoria Arg)."

Fuentes