[libc-commits] [PATCH] D92236: [LIBC] Add optimized memcpy routine for AArch64

Andre Vieira via Phabricator via libc-commits libc-commits at lists.llvm.org
Fri Nov 27 09:12:29 PST 2020


avieira created this revision.
avieira added a reviewer: libc-project.
Herald added subscribers: ecnelises, danielkiss, tschuett, kristof.beyls, mgorny.
Herald added a project: libc-project.
avieira requested review of this revision.

Hi all,

This is an optimized memcpy routine for AArch64 using lessons learned from Arm's Optimized Routines(AOR) memcpy (the aarch64 Advanced SIMD one to be precise).
Benchmarked this on a Neoverse-N1 and it beats the current default implementation for both small and big configurations.

I am not entirely familiar with how the compile-time libc implementation selection works, so as you can see from this patch I've enabled this for 'AArch64', though maybe the community may want to choose different implementations for other AArch64 cores? I believe the non-Advanced SIMD variant of AOR's memcpy has been found to work better for earlier AArch64 cores for instance.

I'm curious to hear how the maintainers/community feel about this.

Kind Regards,
Andre


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D92236

Files:
  libc/src/string/CMakeLists.txt
  libc/src/string/aarch64/CMakeLists.txt
  libc/src/string/aarch64/memcpy.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D92236.308076.patch
Type: text/x-patch
Size: 5132 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libc-commits/attachments/20201127/d1a1cf2d/attachment.bin>


More information about the libc-commits mailing list