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.

Reply via email to