MMX SSE 3D NOW!のプログラミング
■ このスレッドは過去ログ倉庫に格納されています
0045デフォルトの名無しさん
2005/07/27(水) 16:10:13mulps xmm0, xmm1
movaps xmm1, xmm0
shufps xmm0, xmm1, 0xb1
addps xmm0, xmm1
movaps xmm1, xmm0
shufps xmm0, xmm0, 0x0a
addps xmm0, xmm1
これは1個ずつやっているな。
mulps xmm0, xmm1
haddps xmm0, xmm0
haddps xmm0, xmm0
SSE3はすごいなあ。同じhaddpsを続けただけでできてしまう。
ていうか3D Now!もそうか。K6-2が、はまればすごく速かったのがわかる気がした。
ただ、Prescottではhaddpsのタイミングが13-4なんだよな。
上のコードに7+13+13 = 33clkもかかる。
Athlon64だとhaddpsが5-2、mulpsが5-2。5+5+5 = 15clkかな。
ただ、Pen4ならこの33clkのブロック自体を何個も並列に実行しそう。
2個同時でも
haddps xmm0, xmm1
haddps xmm0, xmm0
これでOK。何者だよっていう簡単さだな。
内積を、どう利用するかによって、移動命令で欲しい形式に落とすのも腕の見せ所。
■ このスレッドは過去ログ倉庫に格納されています