プログラム内のすべてのメモリ操作を計測する LLVM パス モジュールを作成しています。ロジックの一部では、ポインターに対して非常にホットなバイナリ ロジックを実行する必要があります。
「bit ? u64_value : zero」をできるだけ少ないサイクルで、できれば明示的な分岐を使用せずに実装するにはどうすればよいですか? レジスタの最下位ビットにビットがあり、別のレジスタに値 (u64 と仮定) があります。ビットが設定されている場合は、値を保持します。ビットがゼロの場合、レジスタをゼロにします。
x86 BMI 命令を使用できます。