CVTSS2SD
Convertir valores en coma flotante de precisión simple escalares en escalar Doble Precisión
estableVMJITAOTinstruccion
Codificaciones
| Opcode | Instruccion | Op/En | 64 bits | Compat/Legacy | Descripcion |
|---|---|---|---|---|---|
F3 0F 5A /r | CVTSS2SD xmm1, xmm2/m32 | A | Valido | Valido | Convertir un valor en coma flotante de precisión simple en xmm2/m32 en un valor en coma flotante de precisión doble en xmm1. |
VEX.LIG.F3.0F.WIG 5A /r | VCVTSS2SD xmm1, xmm2, xmm3/m32 | B | Valido | Valido | Convertir un valor en coma flotante de precisión simple en xmm3/m32 en un valor en coma flotante de precisión doble y fusionarse con pedazos altos de xmm2. |
EVEX.LLIG.F3.0F.W0 5A /r | VCVTSS2SD xmm1 {k1}{z}, xmm2, xmm3/m32{sae} | C | Valido | Valido | Convertir un valor en coma flotante de precisión simple en OR AVX10.1 xmm3/m32 en un valor en coma flotante de precisión doble y fusionarse con pedazos altos de xmm2 bajo 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.reglectura y escriturabyte 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
B
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
C
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: Tuple1 Scalar
Coste medido
Cargando las mediciones de arch-data...
Descripción
Convierte un valor en coma flotante de precisión simple en el "convert-from" operando de origen a un valor flotante de doble precisión en el operando de destino. Cuando el "converso de" operando de origen es un registro XMM, el valor en coma flotante de precisión simple está contenido en la palabra doble baja del registro. El resultado se almacena en el bajo cuádpago del operando de destino.
128-bit Legacy SSE versión: El "converso de" operando de origen (el segundo operando) es un registro XMM o ubicación de memoria. Bits (MAXVL-1:64) del registro de destino correspondiente no se modifican. El operando de destino es un registro XMM.
VEX.128 y EVEX versiones codificadas: El "converso de" operando de origen (el tercer operando) puede ser un registro XMM o una ubicación de memoria de 32 bits. La primera fuente y operandos de destino son registros XMM. Los bits (127:64) del destino de registro XMM se copian de los bits correspondientes en el primer operando de origen. Bits (MAXVL- 1:128) del registro de destino se ponen a cero.
El software debe asegurar que VCVTSS2SD esté codificado con VEX.L=0. Codificar VCVTSS2SD con VEX.L=1 puede encontrar un comportamiento impredecible en diferentes generaciones de procesadores.
Operación
VCVTSS2SD (EVEX Encoded Version)
IF k1[0] or *no writemask*
THEN DEST[63:0] := Convert_Single_Precision_To_Double_Precision_Floating_Point(SRC2[31:0]);
ELSE
IF *merging-masking* ; merging-masking
THEN *DEST[63:0] remains unchanged*
ELSE ; zeroing-masking
THEN DEST[63:0] = 0
FI;
FI;
DEST[127:64] := SRC1[127:64]
DEST[MAXVL-1:128] := 0
VCVTSS2SD (VEX.128 Encoded Version)
DEST[63:0] := Convert_Single_Precision_To_Double_Precision_Floating_Point(SRC2[31:0])
DEST[127:64] := SRC1[127:64]
DEST[MAXVL-1:128] := 0
CVTSS2SD (128-bit Legacy SSE Version)
DEST[63:0] := Convert_Single_Precision_To_Double_Precision_Floating_Point(SRC[31:0]);
DEST[MAXVL-1:64] (Unmodified)Intel C/C++ compilador intrínseco
VCVTSS2SD __m128d _mm_cvt_roundss_sd(__m128d a, __m128 b, int r);
VCVTSS2SD __m128d _mm_mask_cvt_roundss_sd(__m128d s, __mmask8 m, __m128d a,__m128 b, int r);
VCVTSS2SD __m128d _mm_maskz_cvt_roundss_sd(__mmask8 k, __m128d a, __m128 a, int r);
VCVTSS2SD __m128d _mm_mask_cvtss_sd(__m128d s, __mmask8 m, __m128d a,__m128 b);
VCVTSS2SD __m128d _mm_maskz_cvtss_sd(__mmask8 m, __m128d a,__m128 b);
CVTSS2SD __m128d_mm_cvtss_sd(__m128d a, __m128 a);SIMD coma flotante Excepciones
Invalid, Denormal.
Otras excepciones
Instrucciones codificadas por VEX, ver Tabla 2-20, "Tipo 3 Condiciones de Excepción." Instrucciones codificadas por EVEX, ver Tabla 2-49, "Tipo E3 Condiciones de Excepción".