VCVTPD2PH
Convertir Valores de FP de doble precisión en valores de FP16 empaquetados
estableVMJITAOTinstruccion
Codificaciones
| Opcode | Instruccion | Op/En | 64 bits | Compat/Legacy | Descripcion |
|---|---|---|---|---|---|
EVEX.128.66.MAP5.W1 5A /r | VCVTPD2PH xmm1{k1}{z}, xmm2/m128/m64bcst | A | Valido | Valido | Convertir dos paquetes de doble precisión flotante-AND AVX512VL) valores de puntos enxmm2/m128/m64bcst a dos ORAVX10.1empaquetadoFP16valores, y almacenar el resultado enxmm1sujeto amáscara de escritura k1. |
EVEX.256.66.MAP5.W1 5A /r | VCVTPD2PH xmm1{k1}{z}, ymm2/m256/m64bcst | A | Valido | Valido | Convertir cuatro paquetes de doble precisión flotante-AND AVX512VL) valores de puntos enymm2/m256/m64bcst a cuatro ORAVX10.1empaquetadoFP16valores, y almacenar el resultado enxmm1sujeto amáscara de escritura k1. |
EVEX.512.66.MAP5.W1 5A /r | VCVTPD2PH xmm1{k1}{z}, zmm2/m512/m64bcst {er} | A | Valido | Valido | Convertir ocho valores de puntos de doble precisión en AVX10.1 en zmm2/m512/m64bcst a ocho valores de FP16 empaquetados, y almacenar el resultado en ymm1 sujeto a máscara de escritura k1. |
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
Tupla: Full
Coste medido
Cargando las mediciones de arch-data...
Descripción
Esta instrucción convierte dos, cuatro o ocho valores en coma flotante de precisión doble empaquetados en el operando de origen (segundo operando) a dos, cuatro o ocho valores FP16 empaquetados en el operando de destino (primer operando). Cuando una conversión es inexacta, el valor devuelto se redondea según los bits de control de redondeo en el registro MXCSR o los bits de control de redondeo incrustados.
EVEX versiones codificadas: El operando de origen es un registro ZMM/YMM/XMM, un 512/256/128-bit ubicación de memoria, o una transmisión vectorial 512/256/128-bit de una ubicación de memoria de 64 bits. El operando de destino es un registro XMM actualizado condicionalmente con máscara de escritura k1. Los bits superiores (MAXVL-1:128/64/32) del destino correspondiente se ponen a cero.
EVEX.vvvv están reservados y deben ser 1111b instrucciones de lo contrario #UD.
Esta instrucción utiliza MXCSR.DAZ para el manejo de entradas FP64. Las salidas FP16 pueden ser normales o denormales, y no son condicionalmente fluidas a cero.
Operación
VCVTPD2PH DEST, SRC
VL = 128, 256 or 512
KL := VL / 64
IF *SRC is a register* and (VL = 512) AND (EVEX.b = 1):
SET_RM(EVEX.RC)
ELSE:
SET_RM(MXCSR.RC)
FOR j := 0 TO KL-1:
IF k1[j] OR *no writemask*:
IF *SRC is memory* and EVEX.b = 1:
tsrc := SRC.double[0]
ELSE
tsrc := SRC.double[j]
DEST.fp16[j] := Convert_fp64_to_fp16(tsrc)
ELSE IF *zeroing*:
DEST.fp16[j] := 0
// else dest.fp16[j] remains unchanged
DEST[MAXVL-1:VL/4] := 0Intel C/C++ compilador intrínseco
VCVTPD2PH __m128h _mm512_cvt_roundpd_ph (__m512d a, int rounding);
VCVTPD2PH __m128h _mm512_mask_cvt_roundpd_ph (__m128h src, __mmask8 k, __m512d a, int rounding);
VCVTPD2PH __m128h _mm512_maskz_cvt_roundpd_ph (__mmask8 k, __m512d a, int rounding);
VCVTPD2PH __m128h _mm_cvtpd_ph (__m128d a);
VCVTPD2PH __m128h _mm_mask_cvtpd_ph (__m128h src, __mmask8 k, __m128d a);
VCVTPD2PH __m128h _mm_maskz_cvtpd_ph (__mmask8 k, __m128d a);
VCVTPD2PH __m128h _mm256_cvtpd_ph (__m256d a);
VCVTPD2PH __m128h _mm256_mask_cvtpd_ph (__m128h src, __mmask8 k, __m256d a);
VCVTPD2PH __m128h _mm256_maskz_cvtpd_ph (__mmask8 k, __m256d a);
VCVTPD2PH __m128h _mm512_cvtpd_ph (__m512d a);
VCVTPD2PH __m128h _mm512_mask_cvtpd_ph (__m128h src, __mmask8 k, __m512d a);
VCVTPD2PH __m128h _mm512_maskz_cvtpd_ph (__mmask8 k, __m512d a);SIMD coma flotante Excepciones
Invalid, Underflow, Overflow, Precision, Denormal.
Otras excepciones
Instrucciones codificadas por EVEX, ver Tabla 2-48, "Tipo E2 Clase Condiciones de Excepción."