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
 
Format Crypto
Opcode 0x4E287800
Extension Crypto

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;