2013-11-03 47 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