Visible to Intel only — GUID: GUID-A836B9FD-444F-4621-AC61-A4B410786414
Visible to Intel only — GUID: GUID-A836B9FD-444F-4621-AC61-A4B410786414
Intrinsics for Carry-Less Multiplication Instruction and Advanced Encryption Standard Instructions
The prototypes for the Carry-less multiplication intrinsic and the Advanced Encryption Standard (AES) intrinsics are defined in the wmmintrin.h file.
To use these intrinsics, include the immintrin.h file as follows:
#include <immintrin.h>
Carry-Less Multiplication Intrinsic
The single general purpose block encryption intrinsic description is provided below.
__m128i _mm_clmulepi64_si128(__m128i v1, __m128i v2, const int imm8);
Performs a carry-less multiplication of one quadword of v1 by one quadword of v2, and returns the result. The imm8 value is used to determine which quadwords of v1 and v2 should be used.
Corresponding Instruction: PCLMULQDQ
Advanced Encryption Standard Intrinsics
The AES intrinsics are described below.
__m128i _mm_aesdec_si128(__m128i v, __m128i rkey);
Performs one round of an AES decryption flow using the Equivalent Inverse Cipher operating on a 128-bit data (state) from v with a 128-bit round key from rkey.
Corresponding Instruction: AESDEC
__m128i _mm_aesdeclast_si128(__m128i v, __m128i rkey);
Performs the last round of an AES decryption flow using the Equivalent Inverse Cipher operating on a 128-bit data (state) from v with a 128-bit round key from rkey.
Corresponding Instruction: AESDECLAST
__m128i _mm_aesenc_si128(__m128i v, __m128i rkey);
Performs one round of an AES encryption flow operating on a 128-bit data (state) from v with a 128-bit round key from rkey.
Corresponding Instruction:AESENC
__m128i _mm_aesenclast_si128(__m128i v, __m128i rkey);
Performs the last round of an AES encryption flow operating on a 128-bit data (state) from v with a 128-bit round key from rkey.
Corresponding Instruction: AESENCLAST
__m128i _mm_aesimc_si128(__m128i v);
Performs the InvMixColumn transformation on a 128-bit round key fromv and returns the result.
Corresponding Instruction: AESIMC
__m128i _mm_aeskeygenassist_si128(__m128i ckey, const int rcon);
Assists in AES round key generation using an 8-bit Round Constant (RCON) specified in rcon operating on 128 bits of data specified in ckey and returns the result.
Corresponding Instruction: AESKEYGENASSIST