microsoft / STL

MSVC's implementation of the C++ Standard Library.
Other
10.07k stars 1.49k forks source link

Provide ARM64 implementations of vector algorithms #813

Open cbezault opened 4 years ago

cbezault commented 4 years ago

Currently the vector algorithms in stl/src/vector_algorithms.cpp are only optimized for SSE2, SSE4.2, and AVX2. We should also provide NEON implementations of these algorithms.

StephanTLavavej commented 4 years ago

C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\VC\Tools\MSVC\14.26.28801\include\isa_availability.h defines:

sylveon commented 4 years ago

We can assume NEON is present in both 32 bits and 64 bits. https://docs.microsoft.com/en-ca/cpp/build/overview-of-arm-abi-conventions specifies WoA requires it.

StephanTLavavej commented 7 months ago

Updating this issue to no longer mention ARM32; at this time we still need to keep it compiling and working, but we no longer care about optimizing for it. Only ARM64 performance matters.