MMX标志扩展

Loo*_*Per 2 assembly mmx

有谁知道如何使用MMX寄存器将符号扩展从16位字扩展到32位字?我想从存储在MMX寄存器中的两个16位字中获得两个32位符号扩展字.不允许SSE4指令.

问候

Pau*_*l R 5

您可以执行左移(PSLLD)后跟算术右移(PSRAD),例如使用内在函数:

v = _mm_srai_pi32(_mm_slli_pi32(v, 16), 16);
Run Code Online (Sandbox Code Playgroud)

(假设您已经在每个32位字的低半部分中具有16位值.)