_mm_shuffle_ps可以複製從a
2輛花車和2從b
,對不對?有沒有簡單的方法來從b
得到a
和1 3輛花車?我也注意到_mm_move_ss
可以完成這項工作的一部分,但它不會轉移。更好_mm_shuffle_ps可以從一個來源獲取3個元素?
編號:
__m128 _mm_shuffle_ps(__m128 a, __m128 b, unsigned int imm8)
_mm_shuffle_ps可以複製從a
2輛花車和2從b
,對不對?有沒有簡單的方法來從b
得到a
和1 3輛花車?我也注意到_mm_move_ss
可以完成這項工作的一部分,但它不會轉移。更好_mm_shuffle_ps可以從一個來源獲取3個元素?
編號:
__m128 _mm_shuffle_ps(__m128 a, __m128 b, unsigned int imm8)
不幸的是,只有2源洗牌是movss
,movsd
,shufps
,unpckl/hps/d
, movhlps
以及類似的非靈活指令。
palignr
might be useful,即使使用FP指令之間的int洗牌,如果你的數據移動需求,符合其模式旁路延遲。
AVX512添加2-源充分混洗(泳道交叉,與矢量選擇器),用於各種元件的尺寸。東西如vpermi2w
和vpermt2b
正如Paul指出的,混合是組合數據的靈活方式,無需混洗。
查看Agner Fog's Optimizing Assembly guide瞭解按數據移動類型組織的指令表。另請參閱sse標記wiki。
這取決於你是否能承擔最小的SSE版本,例如SSSE3或SSE4? – 2011-05-02 20:10:51
我可以使用SSE3和SSE4。 – echo 2011-05-03 18:20:12