VP2INTERSECTD, VP2INTERSECTQ
Intersección de Computación entre DWORDS/QUADWORDS
estableVMJITAOTinstruccion
Codificaciones
| Opcode | Instruccion | Op/En | 64 bits | Compat/Legacy | Descripcion |
|---|---|---|---|---|---|
EVEX.NDS.128.F2.0F38.W0 68 /r | VP2INTERSECTD k1+1, xmm2, xmm3/m128/m32bcst | A | Valido | Valido | Almacene, 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 /r | VP2INTERSECTD k1+1, ymm2, ymm3/m256/m32bcst | A | Valido | Valido | Almacene, 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 /r | VP2INTERSECTD k1+1, zmm2, zmm3/m512/m32bcst | A | Valido | Valido | Almacene, 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 /r | VP2INTERSECTQ k1+1, xmm2, xmm3/m128/m64bcst | A | Valido | Valido | Almacene, 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 /r | VP2INTERSECTQ k1+1, ymm2, ymm3/m256/m64bcst | A | Valido | Valido | Almacene, 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 /r | VP2INTERSECTQ k1+1, zmm2, zmm3/m512/m64bcst | A | Valido | Valido | Almacene, 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
modrm.regescriturabyte ModRM, campo reg (bits 5-3)evex.vvvvlecturaprefijo EVEX, campo vvvv (invertido)modrm.rmlecturabyte 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] |= matchIntel 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".