diff options
author | Adhemerval Zanella <azanella@linux.vnet.ibm.com> | 2014-07-15 12:19:09 -0400 |
---|---|---|
committer | Adhemerval Zanella <azanella@linux.vnet.ibm.com> | 2014-09-10 07:39:46 -0400 |
commit | 71ae86478edc7b21872464f43fb29ff650c1681a (patch) | |
tree | a75679fa464a1d19543020ef0c4f4f982d099d99 /ChangeLog | |
parent | 3b473fecdf4c52989cd915b649bb6d26c042d048 (diff) | |
download | glibc-71ae86478edc7b21872464f43fb29ff650c1681a.tar.gz glibc-71ae86478edc7b21872464f43fb29ff650c1681a.tar.xz glibc-71ae86478edc7b21872464f43fb29ff650c1681a.zip |
PowerPC: memset optimization for POWER8/PPC64
This patch adds an optimized memset implementation for POWER8. For sizes from 0 to 255 bytes, a word/doubleword algorithm similar to POWER7 optimized one is used. For size higher than 255 two strategies are used: 1. If the constant is different than 0, the memory is written with altivec vector instruction; 2. If constant is 0, dbcz instructions are used. The loop is unrolled to clear 512 byte at time. Using vector instructions increases throughput considerable, with a double performance for sizes larger than 1024. The dcbz loops unrolls also shows performance improvement, by doubling throughput for sizes larger than 8192 bytes.
Diffstat (limited to 'ChangeLog')
-rw-r--r-- | ChangeLog | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog index ddaf70fd29..dc61c8783c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,20 @@ 2014-09-10 Adhemerval Zanella <azanella@linux.vnet.ibm.com> + * benchtests/bench-memset.c (test_main): Add more test from size + from 32 to 512 bytes. + * sysdeps/powerpc/powerpc64/multiarch/Makefile [sysdep_routines]: + Add POWER8 memset object. + * sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c + (__libc_ifunc_impl_list): Add POWER8 memset and bzero implementations. + * sysdeps/powerpc/powerpc64/multiarch/bzero.c (__bzero): Add POWER8 + implementation. + * sysdeps/powerpc/powerpc64/multiarch/memset.c (__libc_memset): + Likewise. + * sysdeps/powerpc/powerpc64/multiarch/memset-power8.S: New file: + multiarch POWER8 memset optimization. + * sysdeps/powerpc/powerpc64/power8/memset.S: New file: optimized + POWER8 memset optimization. + * sysdeps/powerpc/powerpc64/multiarch/Makefile [sysdep_routines]: Remove bzero multiarch objects. * sysdeps/powerpc/powerpc64/multiarch/bzero-power4.S: Remove file. |