VP2INTERSECTD, VP2INTERSECTQ

Intersección de Computación entre DWORDS/QUADWORDS

estableVMJITAOTinstruccion

Codificaciones

OpcodeInstruccionOp/En64 bitsCompat/LegacyDescripcion
EVEX.NDS.128.F2.0F38.W0 68 /rVP2INTERSECTD k1+1, xmm2, xmm3/m128/m32bcstAValidoValidoAlmacene, en un par de registros de máscaras, AVX512 VP2INTERSEjecute los indicadores de las ubicaciones de coincidencias de valor entre dwords en xmm3/m128/m32bcst y xmm2.
EVEX.NDS.256.F2.0F38.W0 68 /rVP2INTERSECTD k1+1, ymm2, ymm3/m256/m32bcstAValidoValidoAlmacene, en un par de registros de máscaras, AVX512 VP2INTERSEjecute los indicadores de las ubicaciones de coincidencias de valor entre dwords en ymm3/m256/m32bcst y ymm2.
EVEX.NDS.512.F2.0F38.W0 68 /rVP2INTERSECTD k1+1, zmm2, zmm3/m512/m32bcstAValidoValidoAlmacene, en un par de registros de máscaras, AVX512 VP2INTERSEjecute los indicadores de las ubicaciones de coincidencias de valor entre dwords en zmm3/m512/m32bcst y zmm2.
EVEX.NDS.128.F2.0F38.W1 68 /rVP2INTERSECTQ k1+1, xmm2, xmm3/m128/m64bcstAValidoValidoAlmacene, en un par de registros de máscaras, AVX512 VP2INTERSEjecute los indicadores de las ubicaciones de coincidencias de valor entre cuádwords en xmm3/m128/m64bcst y xmm2.
EVEX.NDS.256.F2.0F38.W1 68 /rVP2INTERSECTQ k1+1, ymm2, ymm3/m256/m64bcstAValidoValidoAlmacene, en un par de registros de máscaras, AVX512 VP2INTERSEjecute los indicadores de las ubicaciones de coincidencias de valor entre cuádwords en ymm3/m256/m64bcst y ymm2.
EVEX.NDS.512.F2.0F38.W1 68 /rVP2INTERSECTQ k1+1, zmm2, zmm3/m512/m64bcstAValidoValidoAlmacene, en un par de registros de máscaras, AVX512 VP2INTERSEjecute los indicadores de las ubicaciones de coincidencias de valor entre cuádwords en zmm3/m512/m64bcst y zmm2.

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.reg escriturabyte ModRM, campo reg (bits 5-3)
  2. evex.vvvv lecturaprefijo EVEX, 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

Tupla: Full

Coste medido

Cargando las mediciones de arch-data...

Descripción

Esta instrucción escribe un par de registros de máscaras. El destino de registro de máscaras indicado en el campo MODRM.REG se utiliza para formar la base del par de registro. La parte baja de ese campo está enmascarada (conjunto a cero) para crear el primer registro del par.

EVEX.aaa and EVEX.z must be zero.

Operación

VP2INTERSECTD destmask, src1, src2
(KL, VL) = (4, 128), (8, 256), (16, 512)

// dest_mask_reg_id is the register id specified in the instruction for destmask
dest_base := dest_mask_reg_id & ~1

// maskregs[ ] is an array representing the mask registers
maskregs[dest_base+0][MAX_KL-1:0] := 0
maskregs[dest_base+1][MAX_KL-1:0] := 0

FOR i := 0 to KL-1:
    FOR j := 0 to KL-1:
         match := (src1.dword[i] == src2.dword[j])
          maskregs[dest_base+0].bit[i] |= match
          maskregs[dest_base+1].bit[j] |= match

VP2INTERSECTQ destmask, src1, src2
(KL, VL) = (2, 128), (4, 256), (8, 512)

// dest_mask_reg_id is the register id specified in the instruction for destmask
dest_base := dest_mask_reg_id & ~1

// maskregs[ ] is an array representing the mask registers
maskregs[dest_base+0][MAX_KL-1:0] := 0
maskregs[dest_base+1][MAX_KL-1:0] := 0

FOR i = 0 to KL-1:
    FOR j = 0 to KL-1:
         match := (src1.qword[i] == src2.qword[j])
          maskregs[dest_base+0].bit[i] |= match
          maskregs[dest_base+1].bit[j] |= match

Intel C/C++ compilador intrínseco

VP2INTERSECTD void _mm_2intersect_epi32(__m128i, __m128i, __mmask8 *, __mmask8 *);
VP2INTERSECTD void _mm256_2intersect_epi32(__m256i, __m256i, __mmask8 *, __mmask8 *);
VP2INTERSECTD void _mm512_2intersect_epi32(__m512i, __m512i, __mmask16 *, __mmask16 *);
VP2INTERSECTQ void _mm_2intersect_epi64(__m128i, __m128i, __mmask8 *, __mmask8 *);
VP2INTERSECTQ void _mm256_2intersect_epi64(__m256i, __m256i, __mmask8 *, __mmask8 *);
VP2INTERSECTQ void _mm512_2intersect_epi64(__m512i, __m512i, __mmask8 *, __mmask8 *);

SIMD coma flotante Excepciones

None.

Otras excepciones

Ver Tabla 2-52, "Tipo E4NF Clase Condiciones de Excepción".

Fuentes