Ping? Ramana mentioned at Linaro Connect that this should be tested on more platforms.
I've now checked this on qemu with no regressions on trunk for: arm-unknown-linux-gnueabihf v7-A: ARM and Thumb-2 arm-unknown-linux-gnueabi v4t, v5t, v6: ARM OK for trunk? Archive link: http://gcc.gnu.org/ml/gcc-patches/2014-02/msg01611.html On 27 February 2014 16:38, Charles Baylis <charles.bay...@linaro.org> wrote: > [resending as text/plain] > > Hi > > These patches optimise 64 bit division by removing the use of the > __gnu_[u]ldivmod_helper functions and hence avoiding the redundant > calculation of the remainder in those functions. > > Bootstrapped, tested and checked for arm-unknown-linux-gnueabihf. > > Benchmarked on Chromebook and Raspberry Pi using attached divbench3.c. > Loop1 varies the divisor and loop2 varies the dividend. > > Chromebook: > > before: > loop1 unsigned: 3.474419 > loop2 unsigned: 6.564871 > loop1 signed: 4.127967 > loop2 signed: 6.071490 > > after: > loop1 unsigned: 2.781364 > loop2 unsigned: 6.166478 > loop1 signed: 2.800974 > loop2 signed: 6.129588 > > Raspberry pi: > before > loop1 unsigned: 28.881753 > loop2 unsigned: 19.876385 > loop1 signed: 32.074941 > loop2 signed: 20.594860 > > after: > loop1 unsigned: 24.893846 > loop2 unsigned: 19.537562 > loop1 signed: 25.334509 > loop2 signed: 19.615088 > > Any comments? OK for stage 1? > > > Patch 1: > > 2014-02-27 Charles Baylis <charles.bay...@linaro.org> > > * config/arm/bpabi.S (__aeabi_uldivmod): Perform division using call > to __udivmoddi4. > > > Patch 2: > > 2014-02-27 Charles Baylis <charles.bay...@linaro.org> > > * config/arm/bpabi.S (__aeabi_ldivmod): Perform signed division via > call to __udivmoddi4 and fixing up for negative operands.