- 300 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 18:04:15 ]
- 分岐は無くせるけどね。
hoge.piyo = ~(sym.att & -(hoge.piyo==hogehoge.piyo) & hoge.piyo; x86でPentiumPro以降に限定するなら hoge.piyo = ~(hoge.piyo == hogehoge.piyo ? sym.att : 0) & hoge.piyo; はCMOVになる可能性がある。 SSEで書けば次のようにも出来る。 // hoge.piyo = ~(sym.att & -(hoge.piyo==hogehoge.piyo) & hoge.piyo; hige.piyo = _mm_andnot_ps(_mm_and_ps(sym.att, _mm_cmpeq_ps(hoge.piyo, hogehoge.piyo)), hoge.piyo); ただSIMD以外は保守性が悪くなるだけであんま効果無いと思う。 実測した方がいい。
|

|