x86

gccのインラインアセンブラでレジスタに別名をつける

x86

register __m128* tmp asm ("xmm0"); asm volatile ( "pxor %[tmp], %[tmp]" : [tmp] "+x" (tmp) ); なんだかまわりくどいですね…。このコードは、 pxor %xmm0, %xmm0 に展開されます。

MOVDQUの特性について

x86

IntelのOptimization Manualの2.2.5.1 Efficient Handling of Alignment Hazardsによると、Nehalem系CPUからMOVDQUの性能が向上したとあるので、実験してみました。4パターンのmovを実行して速度差を見ます。alignedはアクセス先のアドレスが16バイトアライ…