2019年11月27日水曜日

louds-trie を MSVC でも使えるように改修しました


先週から気温がぐっと下がり,しかも雨続きでどんよりした気分です.実のところ,週末には晴れ間もありましたが,丁度そのタイミングは頭痛でダウンしていたため,私の中ではずっと雨なのです.

https://github.com/s-yata/louds-trie を MSVC でも使えるように少し修正しました(差分 1, 差分 2). gcc と MSVC における組み込み関数の違いに対応させただけなので,動作には影響しないはずです.コンパイラが MSVC かどうかの判定には _MSC_VER が定義されているかどうかを使っています.

CPU 命令と組み込み関数の対応は以下の通りです.

CPU 命令gccMSVC
popcnt__builtin_popcountll__popcnt64
ctz__builtin_ctzll_tzcnt_u64
pdep_pdep_u64_pdep_u64

後は,対応するヘッダが異なります. gcc では x86intrin.h をインクルードしますが, MSVC では intrin.h と immintrin.h をインクルードします.

0 件のコメント:

コメントを投稿