Add Neon implementation of std::swap_ranges#5819
Add Neon implementation of std::swap_ranges#5819StephanTLavavej merged 7 commits intomicrosoft:mainfrom
Conversation
|
@microsoft-github-policy-service agree company="Arm" |
|
Hopefully I’ve done something reasonable here - please let me know if you would prefer a different approach when adding new implementations to vector_algorithms.cpp The performance numbers are below - looks good apart from the case of size(1), which I think is due to the added overhead of the function call and the conditional checks now
|
Add an implementation of std::swap_ranges using Neon intrinsics.
d3e9269 to
7e0a46c
Compare
This comment was marked as resolved.
This comment was marked as resolved.
|
Thanks @hazzlim, this is awesome! 😻 I pushed some commits, can you rerun your benchmark measurements? We finally have ARM64 runtime testing in PR checks, but I won't be able to gather perf measurements myself until Feb 2026-ish. The changes to override |
|
I'm mirroring this to the MSVC-internal repo - please notify me if any further changes are pushed. |
Nice, thanks for doing this! Not sure how I missed that we could remove the loops for I will re-run the perf and report, it may well be unobservable but I think it should also improve the LDP generation so that's a win :) |
|
Thanks for working towards #813 and congratulations on your first microsoft/STL commit! 😻 🎉 🦾 This will ship in the MSVC Build Tools 14.51 in a future update to Visual Studio 2026. |
Add an implementation of std::swap_ranges using Neon intrinsics.