首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >(a*b)/256和MMX

(a*b)/256和MMX
EN

Stack Overflow用户
提问于 2012-06-22 13:44:40
回答 1查看 268关注 0票数 2

我想知道是否可以在MMX-寄存器中并行四个值进行以下计算:

代码语言:javascript
复制
(a*b)/256

其中,a是有符号的单词,b是0-256范围内的无符号值(混合因子)。

我认为我的问题是,我不确定(或是否) pmullw和pmulhw将如何帮助我完成这项任务。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-22 19:19:26

如果您知道a*b不会溢出一个带符号的16位字段,那么您可以使用pmullw (内禀_mm_mullo_pi16,或SSE内禀_mm_mullo_epi16),然后右移8进行256个除法。

哪里

MMX:

代码语言:javascript
复制
__m64 a, b;
...
a = _mm_mullo_pi16 (a, b);
a = _mm_srli_pi16 (a, 8);

SSE2:

代码语言:javascript
复制
__m128i a, b;
...
a = _mm_mullo_epi16 (a, b);
a = _mm_srli_epi16 (a, 8);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11157404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档