0チェック
// 非0なら1 # define Bitboard_Test(b) ( ! _mm_testz_si128( (b).m, _mm_set1_epi8(0xff) ) )
はじめてのSSE その5 - 2011-09-12 - Bonanzaソース完全解析ブログ
問) andnotのときに使った_mm_set1_epi8という命令に対応するアセンブリ命令は何か? (答え) 直接対応する命令はありません。どこかのメモリに0xffが16バイト格納されて、(普通は)それをいったんxmmレジスタに取り出すコードが生成されます。
はじめてのSSE その6 - 2011-09-13 - Bonanzaソース完全解析ブログ
だとすると、_mm_set1_epi8(0xff) は、_mm_cmpeq_epi32((b).m,(b).m) の方が速かったりする?
論理演算 全ビットを0/1にする。 同じレジスタでPXORをとれば全ビットが0になります。 pxor mm0, mm0 ; mm0.pb[]=0 同じレジスタでPCMPEQB/PCMPEQW/PCMPEQDをとれば全ビットが1になります。 pcmpeqb mm0, mm0 ; mm0.pb[]=1