On Monday, 11 June 2018 at 03:34:59 UTC, Basile B. wrote:
- default linux: https://github.com/gcc-mirror/gcc/blob/master/libgcc/memcpy.c

To see what is executed when you call memcpy() on a regular GNU/Linux distro, you'd want to have a look at glibc instead. For example, the AVX2 and AVX512 implementations are in

   sysdeps/x86_64/multiarch/memmove-avx512-no-vzeroupper.S

and

  sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S,

as forwarded to by memmove-avx2-unaligned-erms.S and memmove-avx512-unaligned-erms.S.

(Pop quiz: Why might a separate "no-vzeroupper" variant be a good idea?)

 — David


Reply via email to