なかなかR2600まで行かない

http://wdoor.c.u-tokyo.ac.jp/shogi/view/show-player.cgi?event=LATEST&filter=floodgate&show_self_play=1&user=bc

2週間rateではR2650ぐらいまで行ってるんですが、通常Rが2590までは行くんですが
なかなか2600まで行けないですね。
senoabs登場時は全然勝てなかったんですが、改良後は比較的相性が良いみたいなので
こちらに当たればRが増えやすいと思うんですがねえ(^^;


自己対戦で勝ち越してもfoodgateに出すといまいちだったりもするので
なかなか難しいです。
高速化はほとんどやってないので、PGOをやってもオリジナルbona413より遅いと思います
伊藤さんのブログを読んで

#define BBOr(bb,bb1,bb2)         (bb).p[0] = (bb1).p[0] | (bb2).p[0],         \
                                 (bb).p[1] = (bb1).p[1] | (bb2).p[1],         \
                                 (bb).p[2] = (bb1).p[2] | (bb2).p[2]
#define BBOr128(bb,bb1,bb2)       bb = _mm_or_si128( castbb(bb1), castbb(bb2) )

bitboardをsseに置き換えてみようと思うのですが、
contractは何をやってるか分からないので、orとかandとかやろうと思います。
お手軽には128bitレジスタを元のbitboardに移す処理をすれば、ロジックとしては等価になるのですが
どうやるのが一番なのかを調査中
128ビットレジスタにシフトを適用して32bitとして取り出すことになるのかな?