> > > > Do the math, there are 6 more vmov instructions (all between rX and > > > > sX registers) in the softfp versions. Ok, if one gives a stall of 20 > > > > cycles, how many cycles do we lose in sinf() alone? > > > > > > Depends how the function is called. Worst case we loose 17 cycles, best > > > case we should be ~10 cycles faster. > > > > A simple benchmark confirms this hypothesis. > > softfp is actually faster in many cases. > > > > // uncomment one of these. > > //x[i] = sinf(y[i]); // hard 15% slower > > //x[i] = sinf(y[i]) + 1.0; // hard 5% slower > > //x[i] = sinf(y[i] + 1.0); // hard 0.5% slower > > //x[i] = sinf(y[i] + 1.0) + 1.0; // softfp 2.5% slower > > Hmm, interesting. > > What hardware/CPU/emulator did you test this on? I guess the answers > will vary to some degree depending what it is run on.
A beagleboard and an imx51. Looking a bit closer, some of the hard-float lossage may be due to unrelated GCC issues. Most of my analysis still stands though. Paul -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: http://lists.debian.org/[email protected]

