首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在没有SSE4的情况下,在VC++中向量化乘法是可能的吗?

在没有SSE4的情况下,在VC++中向量化乘法是可能的吗?
EN

Stack Overflow用户
提问于 2011-03-28 05:27:25
回答 1查看 340关注 0票数 4

我想要向量化一个乘法运算。我尝试使用_mm_mul_epi32,但是我的CPU只支持"MMX,SSE (1,2,3,3S),EM64T“指令。

有没有人能告诉我能不能试一下别的功能?

EN

回答 1

Stack Overflow用户

发布于 2011-03-28 05:35:32

这取决于被乘数的范围-如果它们适合16位,那么在SSE4之前有许多16 x 16位的多SSE指令(例如mm_madd_epi16mm_mulhi_epi16mm_mullo_epi16mm_mulhrs_epi16等)。

如果您需要32位操作数,但它们是无符号的,那么您可以使用mm_mul_epu32

或者,您可以转换为浮点型,并使用_mm_mul_ps (整型<->浮点型转换在SSE中是非常有效的,如果它能让您的SIMD吞吐量提高4倍,那么成本可能是合理的)。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5452575

复制
相关文章

相似问题

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