标签: assembly mmx
有没有人知道如何使用MMX寄存器将符号扩展从16位字扩展到32位字?我想从存储在MMX寄存器中的两个16位字中获得两个32位符号扩展字。不允许SSE4指令。
此致
答案 0 :(得分:5)
您可以执行左移(PSLLD),然后进行算术右移(PSRAD),例如使用内在函数:
PSLLD
PSRAD
v = _mm_srai_pi32(_mm_slli_pi32(v, 16), 16);
(假设您已经在每个32位字的低半部分中有16位值。)