| |
XMM命令で、内積を高速に演算する方法はありませんでしょうか?
mulps 命令で各項を乗算は出来るのですが、加算が出来ません。
xmm# レジスタ内の数値の合計を計算する命令ってないですよねぇ〜
shufps 命令で入れ替えつつ加算するのも、一旦メモリに書き出して加算するのもどうもスマートじゃなくて、何か良い方法があるのではないかと思うのですが…。
そもそも並び替えておくことが出来る場合もありますが、そうじゃない場合の方が多いので何とかならないものでしょうか?
movaps xmm1, xmm0
shufps xmm0, xmm0, 0EH
addps xmm0, xmm1
movaps xmm1, xmm0
shufps xmm0, xmm0, 01H
addss xmm0, xmm1
とかやるんだったら、
movaps temp, xmm0
movss xmm1, temp[4]
movss xmm2, temp[8]
movss xmm3, temp[12]
addss xmm0, xmm1
addss xmm2, xmm3
addss xmm0, xmm2
の方がいい気がしますしねぇ〜
|
|