DLTcollab / sse2neon

A translator from Intel SSE intrinsics to Arm/Aarch64 NEON implementation
MIT License
1.3k stars 208 forks source link

Implement _mm_aesenclast_si128 #5

Closed liorko87 closed 4 years ago

liorko87 commented 5 years ago

Hello,

Is there an implementation for _mm_aesenclast_si128 instruction? When I'm trying to compile my program, I'm getting this error: _mm_aesenclast_si128 was not declared in this scope

Lior

marktwtn commented 5 years ago

We do not have the _mm_aesenclast_si128 implementation since it is in the AES(Advanced Encryption Standard) instruction set, as shown in the Intel Intrinsic Guide.

The repository is mainly for the conversion from SSE to NEON instruction set.

jserv commented 4 years ago

Reopen since sse2neon project is emulating x86 AES Intrinsics on A32/A64.

jserv commented 4 years ago

_mm_aesenclast_si128 can be implemented via crypto extension for A64:

// https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_aesenclast_si128
FORCE_INLINE __m128i _mm_aesenclast_si128(__m128i a, __m128i RoundKey)
{
    return vaeseq_u8(a, (__m128i){}) ^ RoundKey;
}