simde
simde copied to clipboard
X86-64 AES-ni support
It would be nice if simde implemented support for AES, especially AES round as this particular part of AES is also used in a lot of hash algorithms etc.
Many x86 based CPUs support this via AES-ni; and a lot of armv8 cores implement it via 'crypto extensions'. For arm cpus that don't have neon its possible to make use of other neon intrinsics.
I've submitted a PR to sse2neon that implements _mm_aesenc_si128 which is the most important instruction - it might be nice to have this as a starting point https://github.com/DLTcollab/sse2neon/pull/6
- [x] _mm_aesenc_si128
- [x] _mm_aesdec_si128
- [x] _mm_aesdeclast_si128
- [x] _mm_aesenclast_si128
- [x] _mm_aesimc_si128
- [ ] _mm_aeskeygenassist_si128
Reference: https://software.intel.com/sites/landingpage/IntrinsicsGuide/#othertechs=AES