HackerTrans
TopNewTrendsCommentsPastAskShowJobs

jnordwick

no profile record

comments

jnordwick
·قبل سنتين·discuss
I think everybody agrees it is a craft. Like woodworking - it is part engineering, part art, and a lot of experience.
jnordwick
·قبل سنتين·discuss
Per Fog's tables, Ice Lake shows a reg-to-reg cmov decoding to 1 uop with a latency of 1 and throughput of 0.5. *mont all have latency 2. P4 had a latency of 6. AMD's K10 latency 4.
jnordwick
·قبل سنتين·discuss
cmov turns a control dependency into a data dependency. It is still there just in a different way. (its like the Fourier Transform of instructions - lolol).

I haven't seen cmov lose to a conditional in a few years (on very recent Intel hardware). Maybe there might be some circumstances where in creates a loop carried dependency that wrecks the optimizer, but I haven't seen one in a minute.

To be fair - cmov versions often involve some extra compution to get things in a form where cmov can be used, and I often just opt for the well predicted conditional since those couple extra instructions to set up the value to move can be avoided.
jnordwick
·قبل سنتين·discuss
When Linus made that comment cmov was like a 6 cycle latency. For the last decade it has been 1 cycle, and I don't think there is any scenario where cmov is now slower than a branch.