我想要向量化一个乘法运算。我尝试使用_mm_mul_epi32,但是我的CPU只支持"MMX,SSE (1,2,3,3S),EM64T“指令。
有没有人能告诉我能不能试一下别的功能?
发布于 2011-03-28 05:35:32
这取决于被乘数的范围-如果它们适合16位,那么在SSE4之前有许多16 x 16位的多SSE指令(例如mm_madd_epi16、mm_mulhi_epi16、mm_mullo_epi16、mm_mulhrs_epi16等)。
如果您需要32位操作数,但它们是无符号的,那么您可以使用mm_mul_epu32。
或者,您可以转换为浮点型,并使用_mm_mul_ps (整型<->浮点型转换在SSE中是非常有效的,如果它能让您的SIMD吞吐量提高4倍,那么成本可能是合理的)。
https://stackoverflow.com/questions/5452575
复制相似问题