2013-11-03 36 views
1

我正在编写一个程序,使用SSE指令来增加和增加整数值。我用浮点数做了同样的程序,但我缺少整数版本的instruccion。SIMD整数存储

用浮漂,我已经完成了我的所有操作后,我返回去值回常规int数组做:

_mm_store_ps(temp4,temp3); 

temp4是float *和TEMP3一个__m128。

问题是,我找不到一个相似的内部整合者。我应该如何将值返回给常规数组?

非常感谢您的回答;)

回答

2

_mm_load_si128_mm_store_si128(对齐)和_mm_loadu_si128_mm_storeu_si128(未对齐)。

您可能忽略了这些,因为由于某些原因,类型与float内部函数相比是不同的。这些是你想要的movdqa/movdqu的更低。

+0

但_mm_store_si128(__m128i * p,__m128i a)正在将数据移动到_128i类型的权利? 将_mm_store_ps数据移动到浮点数组中。如果我需要返回整数数组中的整数,我可以使用_mm_store_si128吗? 我想我可以做一个演员阵容,但是演员阵容很慢吗? 非常感谢;) – Thudor

+1

是的,您需要投射您存储的指针。这种类型的演员是完全免费的(尽管你有责任让演员合适!)。 – gsg