2

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

问候

4

1 回答 1

5

你可以只做一个左移(PSLLD),然后是一个算术右移(PSRAD),例如使用内在函数:

v = _mm_srai_pi32(_mm_slli_pi32(v, 16), 16);

(这是假设您已经在每个 32 位字的低半部分拥有 16 位值。)

于 2011-07-27T15:59:44.780 回答