- 45 名前:デフォルトの名無しさん mailto:sage [2005/07/27(水) 16:10:13 ]
- Intelのページに、SSE3を使わないコードと使うコードの例が載ってた。
mulps 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。何者だよっていう簡単さだな。 内積を、どう利用するかによって、移動命令で欲しい形式に落とすのも腕の見せ所。
|

|