指し手の構造を変えるのは無理でした……

指し手をBonaそのままはきつそうだったので
ちょっと大きめでこんな感じでやってみようと思ったんですが、

/*
xxxxxxxx xxxxxxxx xxxxxxxx 11111111  destination
xxxxxxxx xxxxxxxx 11111111 xxxxxxxx  starting square or drop piece+nsquare-1
xxxxxxxx xxxxxxx1 xxxxxxxx xxxxxxxx  flag for promotion
xxxxxxxx x111111x xxxxxxxx xxxxxxxx  piece to move
xxx11111 1xxxxxxx xxxxxxxx xxxxxxxx  captured piece
*/
#define To2Move(to)             ((unsigned int)(to)   <<  0)
#define From2Move(from)         ((unsigned int)(from) <<  8)
#define FLAG_PROMO              (1U                   << 16)
#define Koma2Move(piece)        ((piece)              << 17)
#define Cap2Move(piece)         ((piece)              << 23)
#define Move2To(move)           (((move) >>  0) & 0x00ffU)
#define Move2From(move)         (((move) >>  8) & 0x00ffU)
#define Move2Promo(move)        (((move) >> 16) & 1)
#define Move2Koma(move)         (((move) >> 17) & 0x003fU)
#define Move2Cap(move)          (((move) >> 23) & 0x003fU)

影響が大規模すぎて、修正無理でした。
むしろ、一から作り直したほうが楽だと思う
あきらめます。
根性足りません



それで、コードをよーく見て無駄なことをしてるところなどを改良して、

#1 758725.3回/sec time=1.318秒
#2 761035.0回/sec time=1.314秒
#3 760456.3回/sec time=1.315秒
#4 758725.3回/sec time=1.318秒
#5 758725.3回/sec time=1.318秒

打つ手のコードはだいぶ無駄がありました。
LS3600さんやまねしまねぞうさんには全然追いつけませんが、
そこそこ速くなったんではないかと(^^;
なお、通常探索部でもPinを求めるのをやめました。