2014/01/18(Sat)x86 で cntlz64

はてブ数 2014/01/18 3:53 プログラミング::C++ つーさ

Counting of Leading Zeros.
Number of Leading Zeros. ともいう。

64bitのnlzをx86で求めるにはどうすりゃええんか? と思っていろいろいじってた。

ptn.2 は、__asmがかえって最適化を阻害するので、結局ptn.3の形に戻る。
ptn.3 は、どうも、わざわざスタック上に変数retを作って代入(そのまま使われない)しやがるのでやや無駄っぽいが、
それを無理に削ろうとして、ptn.4までいくと、inline化できなくなっちゃう。
結論、悩まず素直に書け?

ptn.5は分岐を後にもってきたバージョン。
無駄命令は減ってる気がするけど、やや遅くなった。