Re:Arm AArch64 Adds Memcpy() Instructions
by gatronicus on Tuesday September 21, 2021 @12:43AM
(#28602100)
Except that for decades REP MOVS/STOS were avoided on x86 because they were much slower than hand written assembly. This only changed recently.
[ Parent
| on HN ]
Re:Arm AArch64 Adds Memcpy() Instructions
by userbinator on Tuesday September 21, 2021 @01:06AM
(#28602179)
That was really only in the 286-486 era. On the 8086 it was the fastest, and since the Pentium II, which introduced cacheline-sized moves, it's basically nearly the same as the huge unrolled SIMD implementations that are marginally faster in microbenchmarks.
Linus Torvalds has some good comments on that here: https://www.realworldtech.com/forum/?threadid=196054&curpost...
Re:Arm AArch64 Adds Memcpy() Instructions
by josefx on Tuesday September 21, 2021 @03:34AM
(#28602827)
Linus seems to consider rep mov still too slow for small copies:
https://www.realworldtech.com/forum/?threadid=196054&curpost...
https://www.realworldtech.com/forum/?threadid=196054&curpost...
It seems to me that rep move is so bad that you want to avoid it, but trying to write a fast generic memcpy results in so much bloat to handle edge cases that rep move remains competitive in the generic case.