VCVTSI2SH
Convertir un Integer de doble palabra/cuadword firmado en un valor FP16
estableVMJITAOTinstruccion
Codificaciones
| Opcode | Instruccion | Op/En | 64 bits | Compat/Legacy | Descripcion |
|---|---|---|---|---|---|
EVEX.LLIG.F3.MAP5.W0 2A /r | VCVTSI2SH xmm1, xmm2, r32/m32 {er} | A | Valido | v1 | Convertir el entero de doble palabra firmado en OR AVX10.1 r32/m32 a un valor FP16 y almacenar el resultado en xmm1. Bits 127:16 de xmm2 son copiados a xmm1[127:16]. |
EVEX.LLIG.F3.MAP5.W1 2A /r | VCVTSI2SH xmm1, xmm2, r64/m64 {er} | A | Valido | No codificable | Convertir el entero de cuádword firmado en r64/m64 OR AVX10.1 a un valor FP16 y almacenar el resultado en xmm1. Bits 127:16 de xmm2 son copiados a xmm1[127:16]. |
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)vex.vvvvlecturaprefijo VEX, 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: Scalar
Coste medido
Cargando las mediciones de arch-data...
Descripción
Esta instrucción convierte un entero de doble palabra firmado (o integer de cuádword firmado si tamaño de operando es 64 bits) en el segundo operando de origen a un valor FP16 en el operando de destino. El resultado se almacena en la palabra baja del operando de destino. Cuando la conversión es inexacta, el valor devuelto se redondea según los bits de control de redondeo en el registro MXCSR o los controles de redondeo incrustados.
El segundo operando de origen puede ser un registro de proposito general o una ubicación de memoria de 32/64 bits. La primera fuente y operandos de destino son registros XMM. Los bits 127:16 del destino de registro XMM son copiados de los bits correspondientes en el primer operando de origen. Bits MAXVL-1:128 del registro de destino se ponen a cero.
Si el resultado de la operación de conversión es desbordamiento y MXCSR.OM=0, entonces una excepción SIMD se elevará con OE=1, PE=1.
Operación
VCVTSI2SH dest, src1, src2
IF *SRC2 is a register* and (EVEX.b = 1):
SET_RM(EVEX.RC)
ELSE:
SET_RM(MXCSR.RC)
IF 64-mode and OperandSize == 64:
DEST.fp16[0] := Convert_integer64_to_fp16(SRC2.qword)
ELSE:
DEST.fp16[0] := Convert_integer32_to_fp16(SRC2.dword)
DEST[127:16] := SRC1[127:16]
DEST[MAXVL-1:128] := 0Intel C/C++ compilador intrínseco
VCVTSI2SH __m128h _mm_cvt_roundi32_sh (__m128h a, int b, int rounding);
VCVTSI2SH __m128h _mm_cvt_roundi64_sh (__m128h a, __int64 b, int rounding);
VCVTSI2SH __m128h _mm_cvti32_sh (__m128h a, int b);
VCVTSI2SH __m128h _mm_cvti64_sh (__m128h a, __int64 b);SIMD coma flotante Excepciones
Overflow, Precision.
Otras excepciones
Instrucciones codificadas por EVEX, ver Tabla 2-50, "Tipo E3NF Clase Condiciones de Excepción."