MMX 符号扩展

发布于 2024-11-27 00:24:09 字数 108 浏览 2 评论 0原文

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

问候

Does anyone know how to make sign extension from 16 bits words to 32 bits words using MMX registers? I would like to get two 32 bits sign extended words from two 16 bits words stored in a MMX register. No SSE4 instructions allowed.

Regards

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

月牙弯弯 2024-12-04 00:24:09

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

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

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

You can just do a left shift (PSLLD) followed by an arithmetic right shift (PSRAD), e.g. using intrinsics:

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

(This is assuming that you already have the 16 bit values in the low halves of each 32 bit word.)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文