x86-64 将 long 转换为 double

RNi*_*our 5 assembly x86-64 simd avx

我无法弄清楚如何将 long 类型转换为 double 类型。我正在尝试读取 long int 并将其用于 AVX 寄存器中的计算。但是,我不知道如何将 long int 转换为双精度浮点数以在 AVX 寄存器中使用。

如何将 long int 转换为双精度浮点数?

bar*_*nos 4

如果您仅使用 1-100 之间的值,则 4 字节int就足够大了:

; double x = (double)n
cvtsi2sd    xmm0,dword ptr [n]
movsd       mmword ptr [x],xmm0
Run Code Online (Sandbox Code Playgroud)