_mm_aesimc_si128
Microsoft Specific
Emits the Advanced Encryption Standard (AES) instruction aesimc. This instruction performs the InverseMixColumn operation.
__m128i _mm_aesimc_si128 (
__m128i v,
);
Parameters
Parameter |
Description |
[in] v |
The data that this instruction inverts. |
Return value
The inverted data.
Requirements
Intrinsic |
Architecture |
_mm_aesimc_si128 |
x86, x64 |
Header file <wmmintrin.h>
Remarks
To perform decryption, you should use the aesimc instruction on all the AES expanded round keys. This prepares them for decryption by using the Equivalent Inverse Cipher.
Example
#include <wmmintrin.h>
#include <stdio.h>
int main()
{
__m128i a;
a.m128i_u64[1] = 0x8899AABBCCDDEEFF;
a.m128i_u64[0] = 0x0123456789ABCDEF;
__m128i res = _mm_aesimc_si128( a );
printf_s("Original a: 0x%016I64x%016I64x\n",
a.m128i_u64[1], a.m128i_u64[0]);
printf_s("Result res: 0x%016I64x%016I64x\n",
res.m128i_u64[1], res.m128i_u64[0]);
return 0;
}
Original a: 0x8899aabbccddeeff0123456789abcdef Result res: 0x6633441122770055c66c82284ee40aa0