Am Wed, 13 Feb 2013 15:00:21 +0100 schrieb Joseph Rushton Wakeling <joseph.wakel...@webdrake.net>:
> Compiling with ldmd2 -O -inline -release on 64-bit Ubuntu, latest from-GitHub > LDC, LLVM 3.2: > > D code serial with dimension 32768 ... > using floats Total time: 4.751 [sec] > using doubles Total time: 4.362 [sec] > using reals Total time: 5.95 [sec] Ok, I get pretty much the same numbers as before with: ldmd2 -O -inline -release It's even a bit faster than my loooong command line. Do these numbers tell us, that there are such huge differences in the handling of floating point value between different AMD64 CPUs? I can't quite make a rhyme of it yet. What version of LLVM are you using, mine is 3.1. 3.0 is minimum and 3.2 is recommended for LDC2. > Using double is indeed marginally faster than float, but real is slower than > both. > > What's disturbing is that when compiled instead with gdmd -O -inline -release > the code is dramatically slower: > > D code serial with dimension 32768 ... > using floats Total time: 22.108 [sec] > using doubles Total time: 21.203 [sec] > using reals Total time: 23.717 [sec] > > It's the first time I've encountered such a dramatic difference between GDC > and > LDC, and I'm wondering whether it's down to a bug or some change between D > releases 2.060 and 2.061. _THAT_ I can reproduce with GDC! : D code serial with dimension 32768 ... using floats Total time: 24.415 [sec] using doubles Total time: 23.268 [sec] using reals Total time: 25.168 [sec] It's the exact same pattern. -- Marco