The prototypes for the Carry-less multiplication intrinsic and the AES intrinsics are defined in the wmmintrin.hfile.
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
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
Copyright © 1996-2011, Intel Corporation. All rights reserved.