platform_bionic/libc/arch-arm/generic/bionic
Kyle Repinski 78da73adad libc: Optimize ARM memcmp by using NEON.
Because NEON_UNALIGNED_ACCESS has never been defined, it has gone unused.
This change enables NEON optimization if __ARM_NEON__ is defined.

Test: bionic-benchmarks-32 BM_string_memcmp

On Nextbit Robin (MSM8992), here are the results

Before:
                                       iterations      ns/op
BM_string_memcmp/8                            50M         28    0.277 GiB/s
BM_string_memcmp/64                           50M         54    1.169 GiB/s
BM_string_memcmp/512                           5M        444    1.151 GiB/s
BM_string_memcmp/1024                          2M        885    1.156 GiB/s
BM_string_memcmp/8Ki                         200k       7401    1.107 GiB/s
BM_string_memcmp/16Ki                        200k      14469    1.132 GiB/s
BM_string_memcmp/32Ki                        100k      28726    1.141 GiB/s
BM_string_memcmp/64Ki                         50k      57480    1.140 GiB/s

After:
                                       iterations      ns/op
BM_string_memcmp/8                            50M         22    0.351 GiB/s
BM_string_memcmp/64                         1000k         17    3.688 GiB/s
BM_string_memcmp/512                          20M        105    4.848 GiB/s
BM_string_memcmp/1024                         10M        190    5.367 GiB/s
BM_string_memcmp/8Ki                        1000k       1496    5.475 GiB/s
BM_string_memcmp/16Ki                       1000k       2746    5.966 GiB/s
BM_string_memcmp/32Ki                        500k       5481    5.978 GiB/s
BM_string_memcmp/64Ki                        200k      10971    5.973 GiB/s

Change-Id: I3c76ce7fa2796872e0171d5502b0ebd6e2893339
2018-12-22 01:04:27 +00:00
..
__memcpy_chk.S libc: Move FORTIFY into one file; make style fixups 2017-07-25 17:39:21 -07:00
memcmp.S libc: Optimize ARM memcmp by using NEON. 2018-12-22 01:04:27 +00:00
memmove.S Arm32 dynamic function dispatch 2018-11-26 20:00:55 +00:00
memset.S Arm32 dynamic function dispatch 2018-11-26 20:00:55 +00:00
stpcpy.c Arm32 dynamic function dispatch 2018-11-26 20:00:55 +00:00
strcat.c Arm32 dynamic function dispatch 2018-11-26 20:00:55 +00:00
strcmp.S Arm32 dynamic function dispatch 2018-11-26 20:00:55 +00:00
strcpy.S Arm32 dynamic function dispatch 2018-11-26 20:00:55 +00:00
strlen.c Arm32 dynamic function dispatch 2018-11-26 20:00:55 +00:00