aesimc
AES Inverse Mix Columns
AESIMC <Vd>.<T>, <Vn>.<T>
Performs AES Inverse Mix Columns transformation.
Details
Performs the AES Inverse Mix Columns transformation on a 128-bit vector. The instruction applies the InvMixColumns operation to the bytes in Vn and stores the result in Vd. This is an AArch64-only instruction requiring the Crypto extension. No condition flags are affected.
Pseudocode Operation
Vd ← AES_InvMixColumns(Vn)
Example
AESIMC v0.4s.T, v1.4s.T
Encoding
Binary Layout
01001110
00
101000011
1
10
Rn
Rd
Operands
-
Vd
Destination SIMD/FP vector register -
Vn
First source SIMD/FP vector register
Reference (Arm A64 ISA)
Instruction Forms
| Encoding | Instruction | ISA | Bit pattern | ||
|---|---|---|---|---|---|
| 0x4E287800 | AESIMC <Vd>.16B, <Vn>.16B | A64 | 01001110 | 00 | 101000011 | 1 | 10 | Rn | Rd | ||
| 0x4520E400 | AESIMC <Zdn>.B, <Zdn>.B | A64 | 01000101 | 0 | 0 | 10000011100 | 1 | 00000 | Zdn |
Description
AES inverse mix columns.
Operation
AArch64.CheckFPAdvSIMDEnabled(); bits(128) operand = V[n, 128]; bits(128) result; result = AESInvMixColumns(operand); V[d, 128] = result;