Branch Prediction strange results

Don nospam at nospam.com
Wed Nov 12 06:15:40 PST 2008


bearophile wrote:
> I have found an interesting small article about optimization, so I've tried the code in C and D, and I have found strange results (the D code shows timings opposite of the article).
> This is the article, look at the "Branch Prediction" section:
> http://www.ddj.com/184405848
> 
> The C code:
> http://codepad.org/QSGIije4
> And its asm (MinGW 4.2.1):
> http://codepad.org/c7ZRiXGI
> 
> The similar D code:
> http://codepad.org/slhcSJEA
> Its asm (DMD 1.036):
> http://codepad.org/AjlraEs9
> 
> There is also about 2X performance difference.
> 
> Bye,
> bearophile

Are you running it on a Pentium 4? Pentium 4 has *horrific* branch 
misprediction (minimum 24 cycles, 45 uops). No other processor is nearly 
as bad, eg it's 15 cycles on Core2; it was just 4 cycles on PMMX.


More information about the Digitalmars-d-learn mailing list