[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)



> > > > 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


Reply to: