2021-10-01から1ヶ月間の記事一覧

8x8 bitboardへの対称な変換を全部やるのにAVX2を使う

符号なし64bit整数を8x8 bitboardとみなして、(1)横方向に鏡映 (2)縦方向に鏡映 (3)行列転置 という3つの処理をこの順番でやってもやらなくてもよいとしたとき、結果得られる最大8通りのbitboardのうち、整数としての値が最小のものを得たいという問題を考え…

magic bitboardのmagic numberをSMTソルバで求めようとした

pext命令を軸としてmagic bitboardについて振り返ってみます。計算速度が重要なソフトで、そのなかである固定されたマスク値でpext命令を頻繁に計算する必要があるがpext命令を使いたくないとします。具体的な問題設定としては、 マスク値で立っているビット…

pext 6回で8x8 bitboardを転置できる

前回の記事で、符号なし64bit整数を8x8 bitboardとみなして転置する方法として、基本RISC命令のみでやる方法と、AVX2のmovemask命令などを使う方法があるという話について書きました。今回はそれの続きで、ハッカーのたのしみ第7章7.5を改良した方法も加えて…

movemaskでbitboardを転置するやつ

最近broadcast+sllv+movmskでbitmatrixの転置ができることを知ってスゲーになりました— そすうぽよ(すごい)(早寝早起き) (@_primenumber) 2021年10月1日 このツイートを見かけたんですがやり方が見当たらなくて一瞬考えてしまったたので、備忘録として以下に…