VPBROADCASTM

Broadcast Mask to Vector Register

estableVMJITAOTinstruccion

Codificaciones

OpcodeInstruccionOp/En64 bitsCompat/LegacyDescripcion
EVEX.128.F3.0F38.W1 2A /rVPBROADCASTMB2Q xmm1, k1RMValidoValidoDifusión de bajo valor byte en k1 a dos ubicaciones en AVX512CD) OR AVX10.1 xmm1.
EVEX.256.F3.0F38.W1 2A /rVPBROADCASTMB2Q ymm1, k1RMValidoValidoDifusión de bajo valor byte en k1 a cuatro ubicaciones en AVX512CD) OR AVX10.1 ymm1.
EVEX.512.F3.0F38.W1 2A /rVPBROADCASTMB2Q zmm1, k1RMValidoValidoDifusión de bajo valor byte en k1 a ocho lugares en OR AVX10.1 zmm1.
EVEX.128.F3.0F38.W0 3A /rVPBROADCASTMW2D xmm1, k1RMValidoValidoDifusión de bajo valor de palabra en k1 a cuatro lugares en AVX512CD) OR AVX10.1 xmm1.
EVEX.256.F3.0F38.W0 3A /rVPBROADCASTMW2D ymm1, k1RMValidoValidoDifusión de bajo valor de palabra en k1 a ocho localidades AVX512CD) OR AVX10.1 en ymm1.
EVEX.512.F3.0F38.W0 3A /rVPBROADCASTMW2D zmm1, k1RMValidoValidoDifusión de bajo valor de palabra en k1 a dieciséis OR AVX10.1 ubicaciones en zmm1.

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.

RM

  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

Sin medir: no se ejecuta en procesadores de 64 bits.

Descripción

Transmite el valor de 64/32 bits de cero del byte/palabra bajo del operando de origen (el segundo operando) a cada elemento de 64/32 bits del operando de destino (el primer operando). El operando de origen es un registro de opmasco. El operando de destino es un registro ZMM (EVEX.512), registro YMM (EVEX.256), o registro XMM (EVEX.128).

EVEX.vvvv está reservado y debe ser 1111b instrucciones de lo contrario #UD.

Operación

VPBROADCASTMB2Q
(KL, VL) = (2, 128), (4, 256), (8, 512)
FOR j := 0 TO KL-1

    i := j*64
    DEST[i+63:i] := ZeroExtend(SRC[7:0])
ENDFOR
DEST[MAXVL-1:VL] := 0


VPBROADCASTMW2D
(KL, VL) = (4, 128), (8, 256), (16, 512)
FOR j := 0 TO KL-1

    i := j*32
    DEST[i+31:i] := ZeroExtend(SRC[15:0])
ENDFOR
DEST[MAXVL-1:VL] := 0

Intel C/C++ compilador intrínseco

VPBROADCASTMB2Q __m512i _mm512_broadcastmb_epi64( __mmask8);
VPBROADCASTMW2D __m512i _mm512_broadcastmw_epi32( __mmask16);
VPBROADCASTMB2Q __m256i _mm256_broadcastmb_epi64( __mmask8);
VPBROADCASTMW2D __m256i _mm256_broadcastmw_epi32( __mmask8);
VPBROADCASTMB2Q __m128i _mm_broadcastmb_epi64( __mmask8);
VPBROADCASTMW2D __m128i _mm_broadcastmw_epi32( __mmask8);

SIMD coma flotante Excepciones

None

Otras excepciones

Instrucciones codificadas por EVEX, ver Tabla 2-56, "Tipo E6NF Clase Condiciones de Excepción."

Fuentes