mirror of
https://github.com/aphrody-labs/mullvadvpn-app.git
synced 2026-10-13 22:10:39 +00:00
Reimplement the `xor_protected_area` algorithm using explicit SIMD instructions for the data packet path. This is by far the most common type of WireGuard packet, and it also maps very cleanly onto a 8x16 SIMD vector type since the first 16 bytes of a data packet is obfuscated in LWO. This path seems to auto-vectorize well on x86_64 (I saw no performance increase on my AMD Ryzen 7 PRO 6850U), but less so on more niche CPU archs. On Raspberry PI I saw a ~20% increase in throuhput and on Mac Neo I saw a ~25% increase in throuhput.