VBCSTNEBF162PS
Carga BF16 Element y Convertir en FP32 Element Con Broadcast
estableVMJITAOTinstruccion
Codificaciones
| Opcode | Instruccion | Op/En | 64 bits | Compat/Legacy | Descripcion |
|---|---|---|---|---|---|
VEX.128.F3.0F38.W0 B1 | !(11):rrr:bbb VBCSTNEBF162PS xmm1, m16 | A | Valido | Valido | Cargar un elemento BF16 coma flotante de CONVERT m16, convertir a FP32 y el resultado de la tienda en xmm1. |
VEX.256.F3.0F38.W0 B1 | !(11):rrr:bbb VBCSTNEBF162PS ymm1, m16 | A | Valido | Valido | Cargar un elemento BF16 coma flotante de CONVERT m16, convertir a FP32 y el resultado de la tienda en ymm1. |
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)modrm.rmlecturabyte 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
Esta instrucción carga un elemento BF16 de memoria, lo convierte a FP32, y lo transmite a un registro SIMD.
Esta instrucción no genera excepciones coma flotante y no consulta ni actualiza MXCSR.
Como cualquier número de BF16 puede ser representado en FP32, el resultado de la conversión es exacto y no se necesita redondeo.
Operación
VBCSTNEBF162PS dest, src (VEX encoded version)
VL = (128, 256)
KL = VL/32
FOR i in range(0, KL):
tmp.dword[i].word[0] = src.word[0] // reads 16b from memory
FOR i in range(0, KL):
dest.dword[i] = make_fp32(TMP.dword[i].word[0])
DEST[MAXVL-1:VL] := 0Banderas afectadas
None.
Intel C/C++ compilador intrínseco
VBCSTNEBF162PS __m128 _mm_bcstnebf16_ps (const __bf16* __A);
VBCSTNEBF162PS __m256 _mm256_bcstnebf16_ps (const __bf16* __A);SIMD coma flotante Excepciones
None.
Otras excepciones
Ver Tabla 2-22, "Tipo 5 Condiciones de Excepción de Clase".