Cryptography
AES-NI
AES-NI performs whole rounds of AES encryption and decryption on a 128-bit block in one instruction each, and helps with key expansion.
- CPUID
- AES
CPUID.01H:ECX[25] - Instructions
- 12 mnemonics
- Processors
- Westmere, Sandy Bridge, Ivy Bridge, Haswell, Broadwell, Skylake, Comet Lake, Cannon Lake, Ice Lake (client), Tiger Lake, Alder Lake, Arrow Lake, Panther Lake, Nova Lake, Skylake-SP, Cascade Lake, Cooper Lake, Ice Lake (server), Sapphire Rapids, Emerald Rapids, Granite Rapids, Diamond Rapids, Silvermont, Goldmont, Goldmont Plus, Tremont, Snow Ridge, Lakefield, Sierra Forest, Clearwater Forest, Knights Landing, Knights Mill, K10 (Family 10h), Bulldozer, Piledriver, Zen, Zen+, Zen 2, Zen 3, Zen 4, Zen 5, Zen 6
- Linux flag
aes
AES-NI implements the Advanced Encryption Standard in hardware. AESENC and AESDEC each perform a full round on a 128-bit block with a round key, and AESENCLAST and AESDECLAST the final round; AESKEYGENASSIST and AESIMC help compute the round keys. VEX and EVEX forms of the round instructions, up to 512 bits, are on the pages of VAESENC and its relatives.
Instructions
| Mnemonic | Summary | Forms |
|---|---|---|
| AESDEC | Performs one round of AES decryption on the block in an XMM register with the round key of the source. | 2 |
| AESDECLAST | Performs the last round of AES decryption, without InvMixColumns, on a block with the round key of the source. | 2 |
| AESENC | Performs one round of AES encryption on the block in an XMM register with the round key of the source. | 2 |
| AESENCLAST | Performs the last round of AES encryption, without MixColumns, on a block with the round key of the source. | 2 |
| AESIMC | Applies InvMixColumns to an AES round key, turning encryption round keys into those of the equivalent decryption. | 2 |
| AESKEYGENASSIST | Computes the substituted and rotated words, with a round constant from an immediate, that AES key expansion needs. | 2 |
| VAESDEC | Performs one round of AES decryption on each 128-bit lane with the round key of the matching lane. | 2 |
| VAESDECLAST | Performs the last round of AES decryption on each 128-bit lane with the round key of the matching lane. | 2 |
| VAESENC | Performs one round of AES encryption on each 128-bit lane with the round key of the matching lane. | 2 |
| VAESENCLAST | Performs the last round of AES encryption on each 128-bit lane with the round key of the matching lane. | 2 |
| VAESIMC | Applies InvMixColumns to an AES round key in an XMM register, the VEX form of AESIMC. | 2 |
| VAESKEYGENASSIST | Computes the substituted and rotated words, with a round constant from an immediate, that AES key expansion needs; VEX form. | 2 |
CPUID and processors
XED splits AES-NI into 2 ISA sets. Software can use a form when the processor reports every CPUID bit of one alternative of the form's ISA set.
Sources
- Intel XED v2026.08.23 (commit
0bcb6237345c): forms, encodings, ISA sets, CPUID bits and chip model. - The CPU data of x86-64.net: Zen 3 to Zen 6, from GCC’s
-marchfeature sets and AMD’s Processor Programming References, which the page of each processor cites. - Intel 64 and IA-32 Architectures Software Developer's Manual, Volume 2 (325383-093, September 2026)
The tables are derived from Intel XED, Copyright Intel Corporation, licensed under the Apache License 2.0; x86-64.net converted and reformatted them. The text is our own.