つまりC言語もRustもどちらも同じく
if文の時は普通に条件分岐する
比較値を自己掛け算させるとcmoveを使う

生成コードで掛け算が消えてしまうのはいいね
代わりにやってることは
(1) レジスタの値にメモリから読み込む
(2) 比較
(3) 一致していた時のみレジスタに値0を入れる 【cmove】
(4) レジスタの値をメモリへ書き戻す

条件分岐がない代わりに0にしない時も常に書き込みが発生する
ただし読み込んだ位置への書き込みだから
1サイクルのみでキャッシュページミスのペナルティも無くて済むから問題なしか

一方で元の条件分岐ジャンプするコードと比較して速さはどうなの?
分岐予測ミスやパイプラインの乱れとやらがどれだけ効くのか教えて欲しい