KORTESTW, KORTESTB, KORTESTQ, KORTESTD

Máscaras OR y conjunto banderas

estableVMJITAOTinstruccion

Codificaciones

OpcodeInstruccionOp/En64 bitsCompat/LegacyDescripcion
VEX.L0.0F.W0 98 /rKORTESTW k1, k2RRValidoValidoBitwise OR 16 bits máscaras k1 y k2 y actualizar ZF y CF en consecuencia. OR AVX10.1
VEX.L0.66.0F.W0 98 /rKORTESTB k1, k2RRValidoValidoBitwise OR 8 bits máscaras k1 y k2 y actualizar ZF y CF en consecuencia. OR AVX10.1
VEX.L0.0F.W1 98 /rKORTESTQ k1, k2RRValidoValidoBitwise OR 64 bits máscaras k1 y k2 y actualizar ZF y CF en consecuencia. OR AVX10.1
VEX.L0.66.0F.W1 98 /rKORTESTD k1, k2RRValidoValidoBitwise OR 32 bits máscaras k1 y k2 y actualizar ZF y CF en consecuencia. 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.

RR

  1. modrm.reg 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

Coste medido

Cargando las mediciones de arch-data...

Banderas nombradas

Descripción

Realiza un bitwise OR entre el registro de máscaras vectoriales k2, y el registro de máscaras vectoriales k1, y establece CF y ZF basado en el resultado de la operación.

La bandera ZF se establece si ambas fuentes son 0x0. CF se establece si, después de la operación OR se hace, el resultado de la operación es de los 1's.

Operación

KORTESTW
TMP[15:0] := DEST[15:0] BITWISE OR SRC[15:0]
IF(TMP[15:0]=0)

    THEN ZF := 1
    ELSE ZF := 0
FI;
IF(TMP[15:0]=FFFFh)
    THEN CF := 1
    ELSE CF := 0
FI;

KORTESTB
TMP[7:0] := DEST[7:0] BITWISE OR SRC[7:0]
IF(TMP[7:0]=0)

    THEN ZF := 1
    ELSE ZF := 0
FI;
IF(TMP[7:0]==FFh)
    THEN CF := 1
    ELSE CF := 0

FI;


KORTESTQ
TMP[63:0] := DEST[63:0] BITWISE OR SRC[63:0]
IF(TMP[63:0]=0)

    THEN ZF := 1
    ELSE ZF := 0
FI;
IF(TMP[63:0]==FFFFFFFF_FFFFFFFFh)
    THEN CF := 1
    ELSE CF := 0
FI;

KORTESTD
TMP[31:0] := DEST[31:0] BITWISE OR SRC[31:0]
IF(TMP[31:0]=0)

    THEN ZF := 1
    ELSE ZF := 0
FI;
IF(TMP[31:0]=FFFFFFFFh)
    THEN CF := 1
    ELSE CF := 0
FI;

Intel C/C++ compilador intrínseco

KORTESTW __mmask16 _mm512_kortest[cz](__mmask16 a, __mmask16 b);

Banderas afectadas

La bandera ZF se establece si el resultado de OR-ing ambas fuentes es todos 0s.

La bandera CF se establece si el resultado de OR-ing ambas fuentes es todos 1s.

Las banderas OF, SF, AF y PF están establecidas a 0.

Otras excepciones

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

Fuentes