(old) htmldiff from-(new)

A64 instruction set encoding

313029282726252423222120191817161514131211109876543210
op0op1
Decode fields Instruction details
op0op1
0 0000 Reserved
1 0000 SME encodings
0010 SVE encodings
00x1 UNALLOCATED
100x Data Processing -- Immediate
101x Branches, Exception Generating and System instructions
x101 Data Processing -- Register
x111 Data Processing -- Scalar Floating-Point and Advanced SIMD
x1x0 Loads and Stores

Reserved

The encodings in this section are decoded from A64 instruction set encoding.

313029282726252423222120191817161514131211109876543210
0op00000op1
Decode fields Instruction details
op0op1
00 000000000 UDF
00 != 000000000 UNALLOCATED
!= 00 UNALLOCATED

SME encodings

The encodings in this section are decoded from A64 instruction set encoding.

313029282726252423222120191817161514131211109876543210
1op00000op1op2
Decode fields Instruction details
op0op1op2
00 x00xxxxx0x00000 0xx0xx SME2 Quarter Tile Outer Product - 16-bit and 32-bit
00 x00xxxxx0x00000 1xx0xx UNALLOCATED
00 x00xxxxx0x00001 xxx0xx UNALLOCATED
00 x00xxxxx0x0001x xxx0xx UNALLOCATED
00 x00xxxxx0x001xx xxx0xx UNALLOCATED
00 x00xxxxx0x01xxx xxx0xx UNALLOCATED
00 x00xxxxx1x0xxxx xxx0xx UNALLOCATED
00 x01xxxxxxx0xxxx xxx0xx SME2 Sparse Outer Product
00 x0xxxxxxxx0xxxx xxx1xx UNALLOCATED
00 x0xxxxxxxx1xxxx UNALLOCATED
00 x10xxxxxxxxxxxx xx00xx SME FP Outer Product - 32 bit
00 x10xxxxxxxxxxxx xx10xx SME2 Outer Product - Misc
01 00xxxxxxxxxxxxx SME2 Multi-vector - Memory (Contiguous)
01 10xxxxxxxxxxxxx SME2 Multi-vector - Memory (Strided)
01 x10xxxxxxxxxxxx xxx0xx SME Integer Outer Product - 32 bit
0x x10xxxxxxxxxxxx xxx1xx UNALLOCATED
0x x11xxxxx0000000 0x1xxx SME2 Quarter Tile Outer Product - 64-bit
0x x11xxxxx0000000 1x1xxx UNALLOCATED
0x x11xxxxx0000001 xx1xxx UNALLOCATED
0x x11xxxxx000001x xx1xxx UNALLOCATED
0x x11xxxxx00001xx xx1xxx UNALLOCATED
0x x11xxxxx0001xxx xx1xxx UNALLOCATED
0x x11xxxxx001xxxx xx1xxx UNALLOCATED
0x x11xxxxx01xxxxx xx1xxx UNALLOCATED
0x x11xxxxx1xxxxxx xx1xxx UNALLOCATED
0x x11xxxxxxxxxxxx xx0xxx SME Outer Product - 64 bit
10 0000010xxxxxxxx SME zero array
10 0000011xxxxxxxx SME2 Multiple Zero
10 0010010xxxxxxxx SME2 zero lookup table
10 0010011xxxxxxxx SME2 Move Lookup Table
10 00x011xxxxxxxxx UNALLOCATED
10 010011xxxxxxxxx SME2 Expand Lookup Table (Non-contiguous)
10 011011xxxxxxxxx UNALLOCATED
10 01x001xxxxxxxxx SME2 Expand Lookup Table (Contiguous)
10 0xx000x0xxxxxxx x0xxxx SME Move into Array
10 0xx000x0xxxxxxx x1xxxx UNALLOCATED
10 0xx000x1xxxxxxx SME Move from Array
10 0xx010xxxxxxxxx xx0xxx SME Add Vector to Array
10 0xx010xxxxxxxxx xx1xxx UNALLOCATED
10 0xx1xxxxxxxxxxx UNALLOCATED
10 10x10xxxx0xxxxx SME2 Multi-vector - Multiple and Single Array Vectors (Two registers)
10 10x11xxxx0xxxxx SME2 Multi-vector - Multiple and Single Array Vectors (Four registers)
10 10x1xxxxx1111xx SME2 Multi-vector - Lookup table with 6-bit indices
10 11x1xxxx00xxxxx SME2 Multi-vector - Multiple Array Vectors (Two registers)
10 11x1xxxx10xxxxx SME2 Multi-vector - Multiple Array Vectors (Four registers)
10 11x1xxxxx1111xx UNALLOCATED
10 1xx00xxxxxxxxxx SME2 Multi-vector - Indexed (One register)
10 1xx01xxxx0xxxxx SME2 Multi-vector - Indexed (Two registers)
10 1xx01xxxx1xxxxx SME2 Multi-vector - Indexed (Four registers)
10 1xx10xxxx10100x SME2 Multi-vector - Multiple and Single SVE Destructive (Two registers)
10 1xx10xxxx10101x xxxx0x SME2 Multi-vector - Multiple and Single SVE Destructive (Four registers)
10 1xx10xxxx10101x xxxx1x UNALLOCATED
10 1xx11xxxx1010xx UNALLOCATED
10 1xx1xxx00101110 xxxx0x SME2 Multi-vector - Multiple Vectors SVE Destructive (Four registers)
10 1xx1xxx00101111 xxxx0x SME2 Multi-vector - Multiple Vectors SVE Saturating Multiply (Four registers)
10 1xx1xxx1010111x xxxx0x UNALLOCATED
10 1xx1xxxx0101100 SME2 Multi-vector - Multiple Vectors SVE Destructive (Two registers)
10 1xx1xxxx0101101 SME2 Multi-vector - Multiple Vectors SVE Saturating Multiply (Two registers)
10 1xx1xxxx010111x xxxx1x UNALLOCATED
10 1xx1xxxx11011xx UNALLOCATED
10 1xx1xxxxx100xxx SME2 Multi-vector - SVE Select
10 1xx1xxxxx110xxx SME2 Multi-vector - SVE Constructive Binary
10 1xx1xxxxx111000 SME2 Multi-vector - SVE Constructive Unary
10 1xx1xxxxx111001 0xxxx0 SME2 Multi-vector - FP Multiply
10 1xx1xxxxx111001 1xxxxx UNALLOCATED
10 1xx1xxxxx111001 != 0xxxx00xxxx1UNALLOCATED
10 1xx1xxxxx111010 0xxxx0 SME2 Multiple and Single Vector - FP multiply
10 1xx1xxxxx111010 1xxxxx UNALLOCATED
10 1xx1xxxxx111010 != 0xxxx00xxxx1UNALLOCATED
10 1xx1xxxxx111011 UNALLOCATED
11 SME Memory

SME2 Quarter Tile Outer Product - 16-bit and 32-bit

The encodings in this section are decoded from SME encodings.

313029282726252423222120191817161514131211109876543210
1000000op000op10op2000000op30op4
Decode fields Instruction details
op0op1op2op3op4
0 0 0 x0 SME2 FP32 non-widening quarter tile outer product
0 0 0 x1 0 UNALLOCATED
0 1 0 00 SME2 FP8 to FP32 quarter tile outer product
0 1 0 01 0 SME2 FP8 to FP16 quarter tile outer product
0 1 0 10 1 UNALLOCATED
0 1 0 1x 0 UNALLOCATED
1 0 0 x0 SME2 BF16 to FP32 quarter tile outer product
1 0 0 x1 0 SME2 FP16 non-widening quarter tile outer product
1 1 0 x0 SME2 FP16 to FP32 quarter tile outer product
1 1 0 x1 0 SME2 BF16 non-widening quarter tile outer product
0 1 x1 SME2 Int16 to Int32 quarter tile outer product
1 1 x1 UNALLOCATED
0 x1 1 UNALLOCATED
1 x0 SME2 Int8 to Int32 quarter tile outer product

SME2 FP32 non-widening quarter tile outer product

The encodings in this section are decoded from SME2 Quarter Tile Outer Product - 16-bit and 32-bit.

313029282726252423222120191817161514131211109876543210
10000000000MZm0000000NZn0S00ZAda
Decode fields Instruction Details Feature
MNS
000FMOP4A (non-widening)Single-precision, single vectorsFEAT_SME_MOP4
001FMOP4S (non-widening)Single-precision, single vectorsFEAT_SME_MOP4
010FMOP4A (non-widening)Single-precision, multiple and single vectorsFEAT_SME_MOP4
011FMOP4S (non-widening)Single-precision, multiple and single vectorsFEAT_SME_MOP4
100FMOP4A (non-widening)Single-precision, single and multiple vectorsFEAT_SME_MOP4
101FMOP4S (non-widening)Single-precision, single and multiple vectorsFEAT_SME_MOP4
110FMOP4A (non-widening)Single-precision, multiple vectorsFEAT_SME_MOP4
111FMOP4S (non-widening)Single-precision, multiple vectorsFEAT_SME_MOP4

SME2 FP8 to FP32 quarter tile outer product

The encodings in this section are decoded from SME2 Quarter Tile Outer Product - 16-bit and 32-bit.

313029282726252423222120191817161514131211109876543210
10000000001MZm0000000NZn0000ZAda
Decode fields Instruction Details Feature
MN
00FMOP4A (widening, 4-way)Single vectorsFEAT_SME_MOP4 && FEAT_SME_F8F32
01FMOP4A (widening, 4-way)Multiple and single vectorsFEAT_SME_MOP4 && FEAT_SME_F8F32
10FMOP4A (widening, 4-way)Single and multiple vectorsFEAT_SME_MOP4 && FEAT_SME_F8F32
11FMOP4A (widening, 4-way)Multiple vectorsFEAT_SME_MOP4 && FEAT_SME_F8F32

SME2 FP8 to FP16 quarter tile outer product

The encodings in this section are decoded from SME2 Quarter Tile Outer Product - 16-bit and 32-bit.

313029282726252423222120191817161514131211109876543210
10000000001MZm0000000NZn00100ZA
Decode fields Instruction Details Feature
MN
00FMOP4A (widening, 2-way, FP8 to FP16)Single vectorsFEAT_SME_MOP4 && FEAT_SME_F8F16
01FMOP4A (widening, 2-way, FP8 to FP16)Multiple and single vectorsFEAT_SME_MOP4 && FEAT_SME_F8F16
10FMOP4A (widening, 2-way, FP8 to FP16)Single and multiple vectorsFEAT_SME_MOP4 && FEAT_SME_F8F16
11FMOP4A (widening, 2-way, FP8 to FP16)Multiple vectorsFEAT_SME_MOP4 && FEAT_SME_F8F16

SME2 BF16 to FP32 quarter tile outer product

The encodings in this section are decoded from SME2 Quarter Tile Outer Product - 16-bit and 32-bit.

313029282726252423222120191817161514131211109876543210
10000001000MZm0000000NZn0S00ZAda
Decode fields Instruction Details Feature
MNS
000BFMOP4A (widening)Single vectorsFEAT_SME_MOP4
001BFMOP4S (widening)Single vectorsFEAT_SME_MOP4
010BFMOP4A (widening)Multiple and single vectorsFEAT_SME_MOP4
011BFMOP4S (widening)Multiple and single vectorsFEAT_SME_MOP4
100BFMOP4A (widening)Single and multiple vectorsFEAT_SME_MOP4
101BFMOP4S (widening)Single and multiple vectorsFEAT_SME_MOP4
110BFMOP4A (widening)Multiple vectorsFEAT_SME_MOP4
111BFMOP4S (widening)Multiple vectorsFEAT_SME_MOP4

SME2 FP16 non-widening quarter tile outer product

The encodings in this section are decoded from SME2 Quarter Tile Outer Product - 16-bit and 32-bit.

313029282726252423222120191817161514131211109876543210
10000001000MZm0000000NZn0S100ZA
Decode fields Instruction Details Feature
MNS
000FMOP4A (non-widening)Half-precision, single vectorsFEAT_SME_MOP4 && FEAT_SME_F16F16
001FMOP4S (non-widening)Half-precision, single vectorsFEAT_SME_MOP4 && FEAT_SME_F16F16
010FMOP4A (non-widening)Half-precision, multiple and single vectorsFEAT_SME_MOP4 && FEAT_SME_F16F16
011FMOP4S (non-widening)Half-precision, multiple and single vectorsFEAT_SME_MOP4 && FEAT_SME_F16F16
100FMOP4A (non-widening)Half-precision, single and multiple vectorsFEAT_SME_MOP4 && FEAT_SME_F16F16
101FMOP4S (non-widening)Half-precision, single and multiple vectorsFEAT_SME_MOP4 && FEAT_SME_F16F16
110FMOP4A (non-widening)Half-precision, multiple vectorsFEAT_SME_MOP4 && FEAT_SME_F16F16
111FMOP4S (non-widening)Half-precision, multiple vectorsFEAT_SME_MOP4 && FEAT_SME_F16F16

SME2 FP16 to FP32 quarter tile outer product

The encodings in this section are decoded from SME2 Quarter Tile Outer Product - 16-bit and 32-bit.

313029282726252423222120191817161514131211109876543210
10000001001MZm0000000NZn0S00ZAda
Decode fields Instruction Details Feature
MNS
000FMOP4A (widening, 2-way, FP16 to FP32)Single vectorsFEAT_SME_MOP4
001FMOP4S (widening)Single vectorsFEAT_SME_MOP4
010FMOP4A (widening, 2-way, FP16 to FP32)Multiple and single vectorsFEAT_SME_MOP4
011FMOP4S (widening)Multiple and single vectorsFEAT_SME_MOP4
100FMOP4A (widening, 2-way, FP16 to FP32)Single and multiple vectorsFEAT_SME_MOP4
101FMOP4S (widening)Single and multiple vectorsFEAT_SME_MOP4
110FMOP4A (widening, 2-way, FP16 to FP32)Multiple vectorsFEAT_SME_MOP4
111FMOP4S (widening)Multiple vectorsFEAT_SME_MOP4

SME2 BF16 non-widening quarter tile outer product

The encodings in this section are decoded from SME2 Quarter Tile Outer Product - 16-bit and 32-bit.

313029282726252423222120191817161514131211109876543210
10000001001MZm0000000NZn0S100ZA
Decode fields Instruction Details Feature
MNS
000BFMOP4A (non-widening)Single vectorsFEAT_SME_MOP4 && FEAT_SME_B16B16
001BFMOP4S (non-widening)Single vectorsFEAT_SME_MOP4 && FEAT_SME_B16B16
010BFMOP4A (non-widening)Multiple and single vectorsFEAT_SME_MOP4 && FEAT_SME_B16B16
011BFMOP4S (non-widening)Multiple and single vectorsFEAT_SME_MOP4 && FEAT_SME_B16B16
100BFMOP4A (non-widening)Single and multiple vectorsFEAT_SME_MOP4 && FEAT_SME_B16B16
101BFMOP4S (non-widening)Single and multiple vectorsFEAT_SME_MOP4 && FEAT_SME_B16B16
110BFMOP4A (non-widening)Multiple vectorsFEAT_SME_MOP4 && FEAT_SME_B16B16
111BFMOP4S (non-widening)Multiple vectorsFEAT_SME_MOP4 && FEAT_SME_B16B16

SME2 Int16 to Int32 quarter tile outer product

The encodings in this section are decoded from SME2 Quarter Tile Outer Product - 16-bit and 32-bit.

313029282726252423222120191817161514131211109876543210
1000000u0000MZm0100000NZn0S10ZAda
Decode fields Instruction Details Feature
u0MNS
0000SMOP4A (2-way)Single vectorsFEAT_SME_MOP4
0001SMOP4S (2-way)Single vectorsFEAT_SME_MOP4
0010SMOP4A (2-way)Multiple and single vectorsFEAT_SME_MOP4
0011SMOP4S (2-way)Multiple and single vectorsFEAT_SME_MOP4
0100SMOP4A (2-way)Single and multiple vectorsFEAT_SME_MOP4
0101SMOP4S (2-way)Single and multiple vectorsFEAT_SME_MOP4
0110SMOP4A (2-way)Multiple vectorsFEAT_SME_MOP4
0111SMOP4S (2-way)Multiple vectorsFEAT_SME_MOP4
1000UMOP4A (2-way)Single vectorsFEAT_SME_MOP4
1001UMOP4S (2-way)Single vectorsFEAT_SME_MOP4
1010UMOP4A (2-way)Multiple and single vectorsFEAT_SME_MOP4
1011UMOP4S (2-way)Multiple and single vectorsFEAT_SME_MOP4
1100UMOP4A (2-way)Single and multiple vectorsFEAT_SME_MOP4
1101UMOP4S (2-way)Single and multiple vectorsFEAT_SME_MOP4
1110UMOP4A (2-way)Multiple vectorsFEAT_SME_MOP4
1111UMOP4S (2-way)Multiple vectorsFEAT_SME_MOP4

SME2 Int8 to Int32 quarter tile outer product

The encodings in this section are decoded from SME2 Quarter Tile Outer Product - 16-bit and 32-bit.

313029282726252423222120191817161514131211109876543210
1000000u000u1MZm0100000NZn0S00ZAda
Decode fields Instruction Details Feature
u0u1MNS
00000SMOP4A (4-way)32-bit, single vectorsFEAT_SME_MOP4
00001SMOP4S (4-way)32-bit, single vectorsFEAT_SME_MOP4
00010SMOP4A (4-way)32-bit, multiple and single vectorsFEAT_SME_MOP4
00011SMOP4S (4-way)32-bit, multiple and single vectorsFEAT_SME_MOP4
00100SMOP4A (4-way)32-bit, single and multiple vectorsFEAT_SME_MOP4
00101SMOP4S (4-way)32-bit, single and multiple vectorsFEAT_SME_MOP4
00110SMOP4A (4-way)32-bit, multiple vectorsFEAT_SME_MOP4
00111SMOP4S (4-way)32-bit, multiple vectorsFEAT_SME_MOP4
01000SUMOP4A32-bit, single vectorsFEAT_SME_MOP4
01001SUMOP4S32-bit, single vectorsFEAT_SME_MOP4
01010SUMOP4A32-bit, multiple and single vectorsFEAT_SME_MOP4
01011SUMOP4S32-bit, multiple and single vectorsFEAT_SME_MOP4
01100SUMOP4A32-bit, single and multiple vectorsFEAT_SME_MOP4
01101SUMOP4S32-bit, single and multiple vectorsFEAT_SME_MOP4
01110SUMOP4A32-bit, multiple vectorsFEAT_SME_MOP4
01111SUMOP4S32-bit, multiple vectorsFEAT_SME_MOP4
10000USMOP4A32-bit, single vectorsFEAT_SME_MOP4
10001USMOP4S32-bit, single vectorsFEAT_SME_MOP4
10010USMOP4A32-bit, multiple and single vectorsFEAT_SME_MOP4
10011USMOP4S32-bit, multiple and single vectorsFEAT_SME_MOP4
10100USMOP4A32-bit, single and multiple vectorsFEAT_SME_MOP4
10101USMOP4S32-bit, single and multiple vectorsFEAT_SME_MOP4
10110USMOP4A32-bit, multiple vectorsFEAT_SME_MOP4
10111USMOP4S32-bit, multiple vectorsFEAT_SME_MOP4
11000UMOP4A (4-way)32-bit, single vectorsFEAT_SME_MOP4
11001UMOP4S (4-way)32-bit, single vectorsFEAT_SME_MOP4
11010UMOP4A (4-way)32-bit, multiple and single vectorsFEAT_SME_MOP4
11011UMOP4S (4-way)32-bit, multiple and single vectorsFEAT_SME_MOP4
11100UMOP4A (4-way)32-bit, single and multiple vectorsFEAT_SME_MOP4
11101UMOP4S (4-way)32-bit, single and multiple vectorsFEAT_SME_MOP4
11110UMOP4A (4-way)32-bit, multiple vectorsFEAT_SME_MOP4
11111UMOP4S (4-way)32-bit, multiple vectorsFEAT_SME_MOP4

SME2 Sparse Outer Product

The encodings in this section are decoded from SME encodings.

313029282726252423222120191817161514131211109876543210
1000000op001op1op20op3op40op5
Decode fields Instruction details Feature
op0op1op2op3op4op5
0 0 0 0 0 FTMOPA (non-widening)Single-precisionFEAT_SME_TMOP
0 0 0 0 1 0 UNALLOCATED-
0 1 0 0 0 FTMOPA (widening, 4-way)FEAT_SME_TMOP && FEAT_SME_F8F32
0 1 0 0 1 0 FTMOPA (widening, 2-way, FP8 to FP16)FEAT_SME_TMOP && FEAT_SME_F8F16
1 0 0 0 0 BFTMOPA (widening)FEAT_SME_TMOP
1 0 0 0 1 0 FTMOPA (non-widening)Half-precisionFEAT_SME_TMOP && FEAT_SME_F16F16
1 1 0 0 0 FTMOPA (widening, 2-way, FP16 to FP32)FEAT_SME_TMOP
1 1 0 0 1 0 BFTMOPA (non-widening)FEAT_SME_TMOP && FEAT_SME_B16B16
0 1 0 1 SME2 Int16 to Int32 sparse outer product-
1 1 0 1 UNALLOCATED-
0 0 1 1 UNALLOCATED-
1 0 0 SME Int8 to Int32 sparse outer product-
1 UNALLOCATED-

SME2 Int16 to Int32 sparse outer product

The encodings in this section are decoded from SME2 Sparse Outer Product.

313029282726252423222120191817161514131211109876543210
1000000u0010Zm100KZkZni210ZAda
Decode fields Instruction Details Feature
u0
0STMOPA (2-way)FEAT_SME_TMOP
1UTMOPA (2-way)FEAT_SME_TMOP

SME Int8 to Int32 sparse outer product

The encodings in this section are decoded from SME2 Sparse Outer Product.

313029282726252423222120191817161514131211109876543210
1000000u001u1Zm100KZkZni200ZAda
Decode fields Instruction Details Feature
u0u1
00STMOPA (4-way)FEAT_SME_TMOP
01SUTMOPAFEAT_SME_TMOP
10USTMOPAFEAT_SME_TMOP
11UTMOPA (4-way)FEAT_SME_TMOP

SME FP Outer Product - 32 bit

The encodings in this section are decoded from SME encodings.

313029282726252423222120191817161514131211109876543210
1000000op010op1op200
Decode fields Instruction details Feature
op0op1op2
0 0 SME FP32 outer product-
0 1 0 FMOPA (widening, 4-way)FEAT_SME_F8F32
0 1 1 UNALLOCATED-
1 0 SME BF16 widening outer product-
1 1 SME FP16 widening outer product-

SME FP32 outer product

The encodings in this section are decoded from SME FP Outer Product - 32 bit.

313029282726252423222120191817161514131211109876543210
10000000100ZmPmPnZnS00ZAda
Decode fields Instruction Details Feature
S
0FMOPA (non-widening)FEAT_SME
1FMOPS (non-widening)FEAT_SME

SME BF16 widening outer product

The encodings in this section are decoded from SME FP Outer Product - 32 bit.

313029282726252423222120191817161514131211109876543210
10000001100ZmPmPnZnS00ZAda
Decode fields Instruction Details Feature
S
0BFMOPA (widening)FEAT_SME
1BFMOPS (widening)FEAT_SME

SME FP16 widening outer product

The encodings in this section are decoded from SME FP Outer Product - 32 bit.

313029282726252423222120191817161514131211109876543210
10000001101ZmPmPnZnS00ZAda
Decode fields Instruction Details Feature
S
0FMOPA (widening, 2-way, FP16 to FP32)FEAT_SME
1FMOPS (widening)FEAT_SME

SME2 Outer Product - Misc

The encodings in this section are decoded from SME encodings.

313029282726252423222120191817161514131211109876543210
1000000op010op1op210op3
Decode fields Instruction details Feature
op0op1op2op3
0 0 SME2 32-bit binary outer product-
0 1 0 0 FMOPA (widening, 2-way, FP8 to FP16)FEAT_SME_F8F16
0 1 1 0 UNALLOCATED-
0 1 1 UNALLOCATED-
1 0 0 SME2 FP16 non-widening outer product-
1 1 0 SME2 BF16 non-widening outer product-
1 1 UNALLOCATED-

SME2 32-bit binary outer product

The encodings in this section are decoded from SME2 Outer Product - Misc.

313029282726252423222120191817161514131211109876543210
10000000100ZmPmPnZnS10ZAda
Decode fields Instruction Details Feature
S
0BMOPAFEAT_SME2
1BMOPSFEAT_SME2

SME2 FP16 non-widening outer product

The encodings in this section are decoded from SME2 Outer Product - Misc.

313029282726252423222120191817161514131211109876543210
10000001100ZmPmPnZnS100ZAda
Decode fields Instruction Details Feature
S
0FMOPA (non-widening)FEAT_SME_F16F16
1FMOPS (non-widening)FEAT_SME_F16F16

SME2 BF16 non-widening outer product

The encodings in this section are decoded from SME2 Outer Product - Misc.

313029282726252423222120191817161514131211109876543210
10000001101ZmPmPnZnS100ZAda
Decode fields Instruction Details Feature
S
0BFMOPA (non-widening)FEAT_SME_B16B16
1BFMOPS (non-widening)FEAT_SME_B16B16

SME2 Multi-vector - Memory (Contiguous)

The encodings in this section are decoded from SME encodings.

313029282726252423222120191817161514131211109876543210
101000000op0op1op2
Decode fields Instruction details
op0op1op2
00x 0 SME2 multi-vec contiguous load (scalar plus scalar, two registers)
00x 1 0 SME2 multi-vec contiguous load (scalar plus scalar, four registers)
01x 0 SME2 multi-vec contiguous store (scalar plus scalar, two registers)
01x 1 0 SME2 multi-vec contiguous store (scalar plus scalar, four registers)
0x1 1 1 UNALLOCATED
100 0 SME2 multi-vec contiguous load (scalar plus immediate, two registers)
100 1 0 SME2 multi-vec contiguous load (scalar plus immediate, four registers)
110 0 SME2 multi-vec contiguous store (scalar plus immediate, two registers)
110 1 0 SME2 multi-vec contiguous store (scalar plus immediate, four registers)
1x1 UNALLOCATED
!= 1x1xx0 1 1 UNALLOCATED

SME2 multi-vec contiguous load (scalar plus scalar, two registers)

The encodings in this section are decoded from SME2 Multi-vector - Memory (Contiguous).

313029282726252423222120191817161514131211109876543210
10100000000Rm0mszPNgRnZtN
Decode fields Instruction Details Feature
mszN
000LD1B (scalar plus scalar, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
001LDNT1B (scalar plus scalar, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
010LD1H (scalar plus scalar, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
011LDNT1H (scalar plus scalar, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
100LD1W (scalar plus scalar, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
101LDNT1W (scalar plus scalar, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
110LD1D (scalar plus scalar, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
111LDNT1D (scalar plus scalar, consecutive registers)FEAT_SME2 || FEAT_SVE2p1

SME2 multi-vec contiguous load (scalar plus scalar, four registers)

The encodings in this section are decoded from SME2 Multi-vector - Memory (Contiguous).

313029282726252423222120191817161514131211109876543210
10100000000Rm1mszPNgRnZt0N
Decode fields Instruction Details Feature
mszN
000LD1B (scalar plus scalar, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
001LDNT1B (scalar plus scalar, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
010LD1H (scalar plus scalar, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
011LDNT1H (scalar plus scalar, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
100LD1W (scalar plus scalar, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
101LDNT1W (scalar plus scalar, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
110LD1D (scalar plus scalar, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
111LDNT1D (scalar plus scalar, consecutive registers)FEAT_SME2 || FEAT_SVE2p1

SME2 multi-vec contiguous store (scalar plus scalar, two registers)

The encodings in this section are decoded from SME2 Multi-vector - Memory (Contiguous).

313029282726252423222120191817161514131211109876543210
10100000001Rm0mszPNgRnZtN
Decode fields Instruction Details Feature
mszN
000ST1B (scalar plus scalar, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
001STNT1B (scalar plus scalar, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
010ST1H (scalar plus scalar, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
011STNT1H (scalar plus scalar, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
100ST1W (scalar plus scalar, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
101STNT1W (scalar plus scalar, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
110ST1D (scalar plus scalar, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
111STNT1D (scalar plus scalar, consecutive registers)FEAT_SME2 || FEAT_SVE2p1

SME2 multi-vec contiguous store (scalar plus scalar, four registers)

The encodings in this section are decoded from SME2 Multi-vector - Memory (Contiguous).

313029282726252423222120191817161514131211109876543210
10100000001Rm1mszPNgRnZt0N
Decode fields Instruction Details Feature
mszN
000ST1B (scalar plus scalar, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
001STNT1B (scalar plus scalar, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
010ST1H (scalar plus scalar, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
011STNT1H (scalar plus scalar, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
100ST1W (scalar plus scalar, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
101STNT1W (scalar plus scalar, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
110ST1D (scalar plus scalar, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
111STNT1D (scalar plus scalar, consecutive registers)FEAT_SME2 || FEAT_SVE2p1

SME2 multi-vec contiguous load (scalar plus immediate, two registers)

The encodings in this section are decoded from SME2 Multi-vector - Memory (Contiguous).

313029282726252423222120191817161514131211109876543210
101000000100imm40mszPNgRnZtN
Decode fields Instruction Details Feature
mszN
000LD1B (scalar plus immediate, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
001LDNT1B (scalar plus immediate, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
010LD1H (scalar plus immediate, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
011LDNT1H (scalar plus immediate, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
100LD1W (scalar plus immediate, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
101LDNT1W (scalar plus immediate, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
110LD1D (scalar plus immediate, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
111LDNT1D (scalar plus immediate, consecutive registers)FEAT_SME2 || FEAT_SVE2p1

SME2 multi-vec contiguous load (scalar plus immediate, four registers)

The encodings in this section are decoded from SME2 Multi-vector - Memory (Contiguous).

313029282726252423222120191817161514131211109876543210
101000000100imm41mszPNgRnZt0N
Decode fields Instruction Details Feature
mszN
000LD1B (scalar plus immediate, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
001LDNT1B (scalar plus immediate, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
010LD1H (scalar plus immediate, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
011LDNT1H (scalar plus immediate, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
100LD1W (scalar plus immediate, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
101LDNT1W (scalar plus immediate, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
110LD1D (scalar plus immediate, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
111LDNT1D (scalar plus immediate, consecutive registers)FEAT_SME2 || FEAT_SVE2p1

SME2 multi-vec contiguous store (scalar plus immediate, two registers)

The encodings in this section are decoded from SME2 Multi-vector - Memory (Contiguous).

313029282726252423222120191817161514131211109876543210
101000000110imm40mszPNgRnZtN
Decode fields Instruction Details Feature
mszN
000ST1B (scalar plus immediate, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
001STNT1B (scalar plus immediate, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
010ST1H (scalar plus immediate, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
011STNT1H (scalar plus immediate, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
100ST1W (scalar plus immediate, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
101STNT1W (scalar plus immediate, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
110ST1D (scalar plus immediate, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
111STNT1D (scalar plus immediate, consecutive registers)FEAT_SME2 || FEAT_SVE2p1

SME2 multi-vec contiguous store (scalar plus immediate, four registers)

The encodings in this section are decoded from SME2 Multi-vector - Memory (Contiguous).

313029282726252423222120191817161514131211109876543210
101000000110imm41mszPNgRnZt0N
Decode fields Instruction Details Feature
mszN
000ST1B (scalar plus immediate, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
001STNT1B (scalar plus immediate, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
010ST1H (scalar plus immediate, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
011STNT1H (scalar plus immediate, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
100ST1W (scalar plus immediate, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
101STNT1W (scalar plus immediate, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
110ST1D (scalar plus immediate, consecutive registers)FEAT_SME2 || FEAT_SVE2p1
111STNT1D (scalar plus immediate, consecutive registers)FEAT_SME2 || FEAT_SVE2p1

SME2 Multi-vector - Memory (Strided)

The encodings in this section are decoded from SME encodings.

313029282726252423222120191817161514131211109876543210
101000010op0op1op2
Decode fields Instruction details
op0op1op2
00x 0 SME2 multi-vec non-contiguous load (scalar plus scalar, two registers)
00x 1 0 SME2 multi-vec non-contiguous load (scalar plus scalar, four registers)
01x 0 SME2 multi-vec non-contiguous store (scalar plus scalar, two registers)
01x 1 0 SME2 multi-vec non-contiguous store (scalar plus scalar, four registers)
0x1 1 1 UNALLOCATED
100 0 SME2 multi-vec non-contiguous load (scalar plus immediate, two registers)
100 1 0 SME2 multi-vec non-contiguous load (scalar plus immediate, four registers)
110 0 SME2 multi-vec non-contiguous store (scalar plus immediate, two registers)
110 1 0 SME2 multi-vec non-contiguous store (scalar plus immediate, four registers)
1x1 UNALLOCATED
!= 1x1xx0 1 1 UNALLOCATED

SME2 multi-vec non-contiguous load (scalar plus scalar, two registers)

The encodings in this section are decoded from SME2 Multi-vector - Memory (Strided).

313029282726252423222120191817161514131211109876543210
10100001000Rm0mszPNgRnTNZt
Decode fields Instruction Details Feature
mszN
000LD1B (scalar plus scalar, strided registers)FEAT_SME2
001LDNT1B (scalar plus scalar, strided registers)FEAT_SME2
010LD1H (scalar plus scalar, strided registers)FEAT_SME2
011LDNT1H (scalar plus scalar, strided registers)FEAT_SME2
100LD1W (scalar plus scalar, strided registers)FEAT_SME2
101LDNT1W (scalar plus scalar, strided registers)FEAT_SME2
110LD1D (scalar plus scalar, strided registers)FEAT_SME2
111LDNT1D (scalar plus scalar, strided registers)FEAT_SME2

SME2 multi-vec non-contiguous load (scalar plus scalar, four registers)

The encodings in this section are decoded from SME2 Multi-vector - Memory (Strided).

313029282726252423222120191817161514131211109876543210
10100001000Rm1mszPNgRnTN0Zt
Decode fields Instruction Details Feature
mszN
000LD1B (scalar plus scalar, strided registers)FEAT_SME2
001LDNT1B (scalar plus scalar, strided registers)FEAT_SME2
010LD1H (scalar plus scalar, strided registers)FEAT_SME2
011LDNT1H (scalar plus scalar, strided registers)FEAT_SME2
100LD1W (scalar plus scalar, strided registers)FEAT_SME2
101LDNT1W (scalar plus scalar, strided registers)FEAT_SME2
110LD1D (scalar plus scalar, strided registers)FEAT_SME2
111LDNT1D (scalar plus scalar, strided registers)FEAT_SME2

SME2 multi-vec non-contiguous store (scalar plus scalar, two registers)

The encodings in this section are decoded from SME2 Multi-vector - Memory (Strided).

313029282726252423222120191817161514131211109876543210
10100001001Rm0mszPNgRnTNZt
Decode fields Instruction Details Feature
mszN
000ST1B (scalar plus scalar, strided registers)FEAT_SME2
001STNT1B (scalar plus scalar, strided registers)FEAT_SME2
010ST1H (scalar plus scalar, strided registers)FEAT_SME2
011STNT1H (scalar plus scalar, strided registers)FEAT_SME2
100ST1W (scalar plus scalar, strided registers)FEAT_SME2
101STNT1W (scalar plus scalar, strided registers)FEAT_SME2
110ST1D (scalar plus scalar, strided registers)FEAT_SME2
111STNT1D (scalar plus scalar, strided registers)FEAT_SME2

SME2 multi-vec non-contiguous store (scalar plus scalar, four registers)

The encodings in this section are decoded from SME2 Multi-vector - Memory (Strided).

313029282726252423222120191817161514131211109876543210
10100001001Rm1mszPNgRnTN0Zt
Decode fields Instruction Details Feature
mszN
000ST1B (scalar plus scalar, strided registers)FEAT_SME2
001STNT1B (scalar plus scalar, strided registers)FEAT_SME2
010ST1H (scalar plus scalar, strided registers)FEAT_SME2
011STNT1H (scalar plus scalar, strided registers)FEAT_SME2
100ST1W (scalar plus scalar, strided registers)FEAT_SME2
101STNT1W (scalar plus scalar, strided registers)FEAT_SME2
110ST1D (scalar plus scalar, strided registers)FEAT_SME2
111STNT1D (scalar plus scalar, strided registers)FEAT_SME2

SME2 multi-vec non-contiguous load (scalar plus immediate, two registers)

The encodings in this section are decoded from SME2 Multi-vector - Memory (Strided).

313029282726252423222120191817161514131211109876543210
101000010100imm40mszPNgRnTNZt
Decode fields Instruction Details Feature
mszN
000LD1B (scalar plus immediate, strided registers)FEAT_SME2
001LDNT1B (scalar plus immediate, strided registers)FEAT_SME2
010LD1H (scalar plus immediate, strided registers)FEAT_SME2
011LDNT1H (scalar plus immediate, strided registers)FEAT_SME2
100LD1W (scalar plus immediate, strided registers)FEAT_SME2
101LDNT1W (scalar plus immediate, strided registers)FEAT_SME2
110LD1D (scalar plus immediate, strided registers)FEAT_SME2
111LDNT1D (scalar plus immediate, strided registers)FEAT_SME2

SME2 multi-vec non-contiguous load (scalar plus immediate, four registers)

The encodings in this section are decoded from SME2 Multi-vector - Memory (Strided).

313029282726252423222120191817161514131211109876543210
101000010100imm41mszPNgRnTN0Zt
Decode fields Instruction Details Feature
mszN
000LD1B (scalar plus immediate, strided registers)FEAT_SME2
001LDNT1B (scalar plus immediate, strided registers)FEAT_SME2
010LD1H (scalar plus immediate, strided registers)FEAT_SME2
011LDNT1H (scalar plus immediate, strided registers)FEAT_SME2
100LD1W (scalar plus immediate, strided registers)FEAT_SME2
101LDNT1W (scalar plus immediate, strided registers)FEAT_SME2
110LD1D (scalar plus immediate, strided registers)FEAT_SME2
111LDNT1D (scalar plus immediate, strided registers)FEAT_SME2

SME2 multi-vec non-contiguous store (scalar plus immediate, two registers)

The encodings in this section are decoded from SME2 Multi-vector - Memory (Strided).

313029282726252423222120191817161514131211109876543210
101000010110imm40mszPNgRnTNZt
Decode fields Instruction Details Feature
mszN
000ST1B (scalar plus immediate, strided registers)FEAT_SME2
001STNT1B (scalar plus immediate, strided registers)FEAT_SME2
010ST1H (scalar plus immediate, strided registers)FEAT_SME2
011STNT1H (scalar plus immediate, strided registers)FEAT_SME2
100ST1W (scalar plus immediate, strided registers)FEAT_SME2
101STNT1W (scalar plus immediate, strided registers)FEAT_SME2
110ST1D (scalar plus immediate, strided registers)FEAT_SME2
111STNT1D (scalar plus immediate, strided registers)FEAT_SME2

SME2 multi-vec non-contiguous store (scalar plus immediate, four registers)

The encodings in this section are decoded from SME2 Multi-vector - Memory (Strided).

313029282726252423222120191817161514131211109876543210
101000010110imm41mszPNgRnTN0Zt
Decode fields Instruction Details Feature
mszN
000ST1B (scalar plus immediate, strided registers)FEAT_SME2
001STNT1B (scalar plus immediate, strided registers)FEAT_SME2
010ST1H (scalar plus immediate, strided registers)FEAT_SME2
011STNT1H (scalar plus immediate, strided registers)FEAT_SME2
100ST1W (scalar plus immediate, strided registers)FEAT_SME2
101STNT1W (scalar plus immediate, strided registers)FEAT_SME2
110ST1D (scalar plus immediate, strided registers)FEAT_SME2
111STNT1D (scalar plus immediate, strided registers)FEAT_SME2

SME Integer Outer Product - 32 bit

The encodings in this section are decoded from SME encodings.

313029282726252423222120191817161514131211109876543210
101000010op0op10
Decode fields Instruction details
op0op1
0 1 SME2 Int16 two-way outer product
1 1 UNALLOCATED
0 SME Int8 outer product

SME2 Int16 two-way outer product

The encodings in this section are decoded from SME Integer Outer Product - 32 bit.

313029282726252423222120191817161514131211109876543210
1010000u0100ZmPmPnZnS10ZAda
Decode fields Instruction Details Feature
u0S
00SMOPA (2-way)FEAT_SME2
01SMOPS (2-way)FEAT_SME2
10UMOPA (2-way)FEAT_SME2
11UMOPS (2-way)FEAT_SME2

SME Int8 outer product

The encodings in this section are decoded from SME Integer Outer Product - 32 bit.

313029282726252423222120191817161514131211109876543210
1010000u010u1ZmPmPnZnS00ZAda
Decode fields Instruction Details Feature
u0u1S
000SMOPA (4-way)FEAT_SME
001SMOPS (4-way)FEAT_SME
010SUMOPA (4-way)FEAT_SME
011SUMOPSFEAT_SME
100USMOPA (4-way)FEAT_SME
101USMOPSFEAT_SME
110UMOPA (4-way)FEAT_SME
111UMOPS (4-way)FEAT_SME

SME2 Quarter Tile Outer Product - 64-bit

The encodings in this section are decoded from SME encodings.

313029282726252423222120191817161514131211109876543210
10op00000op111op2000000001
Decode fields Instruction details
op0op1op2
0 0 0 SME2 FP64 non-widening quarter tile outer product
0 0 1 UNALLOCATED
0 1 UNALLOCATED
1 SME2 Int16 to Int64 quarter tile outer product

SME2 FP64 non-widening quarter tile outer product

The encodings in this section are decoded from SME2 Quarter Tile Outer Product - 64-bit.

313029282726252423222120191817161514131211109876543210
10000000110MZm0000000NZn0S1ZAda
Decode fields Instruction Details Feature
MNS
000FMOP4A (non-widening)Double-precision, single vectorsFEAT_SME_MOP4 && FEAT_SME_F64F64
001FMOP4S (non-widening)Double-precision, single vectorsFEAT_SME_MOP4 && FEAT_SME_F64F64
010FMOP4A (non-widening)Double-precision, multiple and single vectorsFEAT_SME_MOP4 && FEAT_SME_F64F64
011FMOP4S (non-widening)Double-precision, multiple and single vectorsFEAT_SME_MOP4 && FEAT_SME_F64F64
100FMOP4A (non-widening)Double-precision, single and multiple vectorsFEAT_SME_MOP4 && FEAT_SME_F64F64
101FMOP4S (non-widening)Double-precision, single and multiple vectorsFEAT_SME_MOP4 && FEAT_SME_F64F64
110FMOP4A (non-widening)Double-precision, multiple vectorsFEAT_SME_MOP4 && FEAT_SME_F64F64
111FMOP4S (non-widening)Double-precision, multiple vectorsFEAT_SME_MOP4 && FEAT_SME_F64F64

SME2 Int16 to Int64 quarter tile outer product

The encodings in this section are decoded from SME2 Quarter Tile Outer Product - 64-bit.

313029282726252423222120191817161514131211109876543210
1010000u011u1MZm0000000NZn0S1ZAda
Decode fields Instruction Details Feature
u0u1MNS
00000SMOP4A (4-way)64-bit, single vectorsFEAT_SME_MOP4 && FEAT_SME_I16I64
00001SMOP4S (4-way)64-bit, single vectorsFEAT_SME_MOP4 && FEAT_SME_I16I64
00010SMOP4A (4-way)64-bit, multiple and single vectorsFEAT_SME_MOP4 && FEAT_SME_I16I64
00011SMOP4S (4-way)64-bit, multiple and single vectorsFEAT_SME_MOP4 && FEAT_SME_I16I64
00100SMOP4A (4-way)64-bit, single and multiple vectorsFEAT_SME_MOP4 && FEAT_SME_I16I64
00101SMOP4S (4-way)64-bit, single and multiple vectorsFEAT_SME_MOP4 && FEAT_SME_I16I64
00110SMOP4A (4-way)64-bit, multiple vectorsFEAT_SME_MOP4 && FEAT_SME_I16I64
00111SMOP4S (4-way)64-bit, multiple vectorsFEAT_SME_MOP4 && FEAT_SME_I16I64
01000SUMOP4A64-bit, single vectorsFEAT_SME_MOP4 && FEAT_SME_I16I64
01001SUMOP4S64-bit, single vectorsFEAT_SME_MOP4 && FEAT_SME_I16I64
01010SUMOP4A64-bit, multiple and single vectorsFEAT_SME_MOP4 && FEAT_SME_I16I64
01011SUMOP4S64-bit, multiple and single vectorsFEAT_SME_MOP4 && FEAT_SME_I16I64
01100SUMOP4A64-bit, single and multiple vectorsFEAT_SME_MOP4 && FEAT_SME_I16I64
01101SUMOP4S64-bit, single and multiple vectorsFEAT_SME_MOP4 && FEAT_SME_I16I64
01110SUMOP4A64-bit, multiple vectorsFEAT_SME_MOP4 && FEAT_SME_I16I64
01111SUMOP4S64-bit, multiple vectorsFEAT_SME_MOP4 && FEAT_SME_I16I64
10000USMOP4A64-bit, single vectorsFEAT_SME_MOP4 && FEAT_SME_I16I64
10001USMOP4S64-bit, single vectorsFEAT_SME_MOP4 && FEAT_SME_I16I64
10010USMOP4A64-bit, multiple and single vectorsFEAT_SME_MOP4 && FEAT_SME_I16I64
10011USMOP4S64-bit, multiple and single vectorsFEAT_SME_MOP4 && FEAT_SME_I16I64
10100USMOP4A64-bit, single and multiple vectorsFEAT_SME_MOP4 && FEAT_SME_I16I64
10101USMOP4S64-bit, single and multiple vectorsFEAT_SME_MOP4 && FEAT_SME_I16I64
10110USMOP4A64-bit, multiple vectorsFEAT_SME_MOP4 && FEAT_SME_I16I64
10111USMOP4S64-bit, multiple vectorsFEAT_SME_MOP4 && FEAT_SME_I16I64
11000UMOP4A (4-way)64-bit, single vectorsFEAT_SME_MOP4 && FEAT_SME_I16I64
11001UMOP4S (4-way)64-bit, single vectorsFEAT_SME_MOP4 && FEAT_SME_I16I64
11010UMOP4A (4-way)64-bit, multiple and single vectorsFEAT_SME_MOP4 && FEAT_SME_I16I64
11011UMOP4S (4-way)64-bit, multiple and single vectorsFEAT_SME_MOP4 && FEAT_SME_I16I64
11100UMOP4A (4-way)64-bit, single and multiple vectorsFEAT_SME_MOP4 && FEAT_SME_I16I64
11101UMOP4S (4-way)64-bit, single and multiple vectorsFEAT_SME_MOP4 && FEAT_SME_I16I64
11110UMOP4A (4-way)64-bit, multiple vectorsFEAT_SME_MOP4 && FEAT_SME_I16I64
11111UMOP4S (4-way)64-bit, multiple vectorsFEAT_SME_MOP4 && FEAT_SME_I16I64

SME Outer Product - 64 bit

The encodings in this section are decoded from SME encodings.

313029282726252423222120191817161514131211109876543210
10op00000op111op20
Decode fields Instruction details
op0op1op2
0 0 0 SME FP64 outer product
0 0 1 UNALLOCATED
0 1 UNALLOCATED
1 SME Int16 outer product

SME FP64 outer product

The encodings in this section are decoded from SME Outer Product - 64 bit.

313029282726252423222120191817161514131211109876543210
10000000110ZmPmPnZnS0ZAda
Decode fields Instruction Details Feature
S
0FMOPA (non-widening)FEAT_SME_F64F64
1FMOPS (non-widening)FEAT_SME_F64F64

SME Int16 outer product

The encodings in this section are decoded from SME Outer Product - 64 bit.

313029282726252423222120191817161514131211109876543210
1010000u011u1ZmPmPnZnS0ZAda
Decode fields Instruction Details Feature
u0u1S
000SMOPA (4-way)FEAT_SME_I16I64
001SMOPS (4-way)FEAT_SME_I16I64
010SUMOPA (4-way)FEAT_SME_I16I64
011SUMOPSFEAT_SME_I16I64
100USMOPA (4-way)FEAT_SME_I16I64
101USMOPSFEAT_SME_I16I64
110UMOPA (4-way)FEAT_SME_I16I64
111UMOPS (4-way)FEAT_SME_I16I64

SME zero array

The encodings in this section are decoded from SME encodings.

313029282726252423222120191817161514131211109876543210
11000000000010op0
Decode fields Instruction details Feature
op0
0000000000 ZERO (tiles)FEAT_SME
!= 0000000000 UNALLOCATED-

SME2 Multiple Zero

The encodings in this section are decoded from SME encodings.

313029282726252423222120191817161514131211109876543210
11000000000011op0
Decode fields Instruction details
op0
0000000000 SME multiple vectors zero array
!= 0000000000 UNALLOCATED

SME multiple vectors zero array

The encodings in this section are decoded from SME2 Multiple Zero.

313029282726252423222120191817161514131211109876543210
11000000000011opcRv0000000000opc2
Decode fields Instruction Details Feature
opcopc2
x1x1xxUNALLOCATED-
000ZERO (single-vector)Two ZA single-vectorsFEAT_SME2p1
001ZERO (double-vector)One ZA double-vectorFEAT_SME2p1
0100xxZERO (double-vector)Two ZA double-vectorsFEAT_SME2p1
0110xxZERO (double-vector)Four ZA double-vectorsFEAT_SME2p1
100ZERO (single-vector)Four ZA single-vectorsFEAT_SME2p1
1010xxZERO (quad-vector)One ZA quad-vectorFEAT_SME2p1
1011xxUNALLOCATED-
11x01xUNALLOCATED-
11000xZERO (quad-vector)Two ZA quad-vectorsFEAT_SME2p1
11100xZERO (quad-vector)Four ZA quad-vectorsFEAT_SME2p1

SME2 zero lookup table

The encodings in this section are decoded from SME encodings.

313029282726252423222120191817161514131211109876543210
11000000010010op0opc
Decode fields Instruction Details Feature
op0opc
000000000000000001ZERO (table)FEAT_SME2
00000000000000!= 0001UNALLOCATED-
!= 00000000000000UNALLOCATED-

SME2 Move Lookup Table

The encodings in this section are decoded from SME encodings.

313029282726252423222120191817161514131211109876543210
11000000010011op0op1op2
Decode fields Instruction details
op0op1op2
0 00 SME2 move from lookup table
0 10 UNALLOCATED
1 00 SME2 move into lookup table
1 10 0 SME2 move vector to lookup table
1 10 1 UNALLOCATED
x1 UNALLOCATED

SME2 move from lookup table

The encodings in this section are decoded from SME2 Move Lookup Table.

313029282726252423222120191817161514131211109876543210
11000000010011000imm3opcRt
Decode fields Instruction Details Feature
opc
0011111MOVT (table to scalar)FEAT_SME2
!= 0011111UNALLOCATED-

SME2 move into lookup table

The encodings in this section are decoded from SME2 Move Lookup Table.

313029282726252423222120191817161514131211109876543210
11000000010011100imm3opcRt
Decode fields Instruction Details Feature
opc
0011111MOVT (scalar to table)FEAT_SME2
!= 0011111UNALLOCATED-

SME2 move vector to lookup table

The encodings in this section are decoded from SME2 Move Lookup Table.

313029282726252423222120191817161514131211109876543210
110000000100111100off2opcZt
Decode fields Instruction Details Feature
opc
0011111MOVT (vector to table)FEAT_SME_LUTv2
!= 0011111UNALLOCATED-

SME2 Expand Lookup Table (Non-contiguous)

The encodings in this section are decoded from SME encodings.

313029282726252423222120191817161514131211109876543210
1100000010011op0op1op4op2op3
Decode fields Instruction details
op0op1op4op2op3
00x 00 00 UNALLOCATED
010 00 0 0 00 SME2 lookup table three source registers expand to four non-contiguous destination registers
010 00 1 0 00 UNALLOCATED
011 00 0 00 SME2 lookup table two source registers expand to four non-contiguous destination registers
01x 00 1 00 UNALLOCATED
1xx 00 00 UNALLOCATED
10 00 SME2 lookup table expand four non-contiguous registers
x0 01 UNALLOCATED
x1 0x SME2 lookup table expand two non-contiguous registers
1x UNALLOCATED
!= 01x 00 00 UNALLOCATED

SME2 lookup table three source registers expand to four non-contiguous destination registers

The encodings in this section are decoded from SME2 Expand Lookup Table (Non-contiguous).

313029282726252423222120191817161514131211109876543210
110000001001101000sizeopcZn00D00Zd
Decode fields Instruction Details Feature
sizeopc
0000LUTI6 (table, four registers, 8-bit)FEAT_SME2p3
00!= 00UNALLOCATED-
!= 00UNALLOCATED-

SME2 lookup table two source registers expand to four non-contiguous destination registers

The encodings in this section are decoded from SME2 Expand Lookup Table (Non-contiguous).

313029282726252423222120191817161514131211109876543210
110000001001101100sizeopcZn0D00Zd
Decode fields Instruction Details Feature
opc
00LUTI4 (four registers, 8-bit)FEAT_SME2p1 && FEAT_SME_LUTv2
!= 00UNALLOCATED-

SME2 lookup table expand four non-contiguous registers

The encodings in this section are decoded from SME2 Expand Lookup Table (Non-contiguous).

313029282726252423222120191817161514131211109876543210
1100000010011opc10sizeopc2ZnD00Zd
Decode fields Instruction Details Feature
opcopc2
!= 00UNALLOCATED-
00x00UNALLOCATED-
01x00LUTI4 (four registers, 16-bit and 32-bit)FEAT_SME2p1
1xx00LUTI2 (four registers)FEAT_SME2p1

SME2 lookup table expand two non-contiguous registers

The encodings in this section are decoded from SME2 Expand Lookup Table (Non-contiguous).

313029282726252423222120191817161514131211109876543210
1100000010011opc1sizeopc2ZnD0Zd
Decode fields Instruction Details Feature
opcopc2
!= 00UNALLOCATED-
00xx00UNALLOCATED-
01xx00LUTI4 (two registers)FEAT_SME2p1
1xxx00LUTI2 (two registers)FEAT_SME2p1

SME2 Expand Lookup Table (Contiguous)

The encodings in this section are decoded from SME encodings.

313029282726252423222120191817161514131211109876543210
110000001op0001op1op4op2op3
Decode fields Instruction details
op0op1op4op2op3
0 00x00 00 UNALLOCATED
0 01000 0 0 00 SME2 lookup table three source registers expand to four contiguous destination registers
0 01000 1 0 00 UNALLOCATED
0 01100 0 00 SME2 lookup table two source registers expand to four contiguous destination registers
0 01x00 1 00 UNALLOCATED
0 1xx00 00 UNALLOCATED
0 xxx10 00 SME2 lookup table expand four contiguous registers
0 xxxx0 10 UNALLOCATED
0 xxxx1 x0 SME2 lookup table expand two contiguous registers
0 x1 UNALLOCATED
1 SME2 lookup table expand one register

SME2 lookup table three source registers expand to four contiguous destination registers

The encodings in this section are decoded from SME2 Expand Lookup Table (Contiguous).

313029282726252423222120191817161514131211109876543210
110000001000101000sizeopcZn00Zd00
Decode fields Instruction Details Feature
sizeopc
0000LUTI6 (table, four registers, 8-bit)FEAT_SME2p3
00!= 00UNALLOCATED-
!= 00UNALLOCATED-

SME2 lookup table two source registers expand to four contiguous destination registers

The encodings in this section are decoded from SME2 Expand Lookup Table (Contiguous).

313029282726252423222120191817161514131211109876543210
110000001000101100sizeopcZn0Zd00
Decode fields Instruction Details Feature
opc
00LUTI4 (four registers, 8-bit)FEAT_SME_LUTv2
!= 00UNALLOCATED-

SME2 lookup table expand four contiguous registers

The encodings in this section are decoded from SME2 Expand Lookup Table (Contiguous).

313029282726252423222120191817161514131211109876543210
1100000010001opc10sizeopc2ZnZd00
Decode fields Instruction Details Feature
opcopc2
!= 00UNALLOCATED-
00x00UNALLOCATED-
01x00LUTI4 (four registers, 16-bit and 32-bit)FEAT_SME2
1xx00LUTI2 (four registers)FEAT_SME2

SME2 lookup table expand two contiguous registers

The encodings in this section are decoded from SME2 Expand Lookup Table (Contiguous).

313029282726252423222120191817161514131211109876543210
1100000010001opc1sizeopc2ZnZd0
Decode fields Instruction Details Feature
opcopc2
!= 00UNALLOCATED-
00xx00UNALLOCATED-
01xx00LUTI4 (two registers)FEAT_SME2
1xxx00LUTI2 (two registers)FEAT_SME2

SME2 lookup table expand one register

The encodings in this section are decoded from SME2 Expand Lookup Table (Contiguous).

313029282726252423222120191817161514131211109876543210
1100000011001opcsizeopc2ZnZd
Decode fields Instruction Details Feature
opcsizeopc2
!= 00UNALLOCATED-
0000000UNALLOCATED-
000010000LUTI6 (table, single, 8-bit)FEAT_SME2p3
00001!= 0000UNALLOCATED-
0001x00UNALLOCATED-
001xx00UNALLOCATED-
01xxx00LUTI4 (single)FEAT_SME2
1xxxx00LUTI2 (single)FEAT_SME2

SME Move into Array

The encodings in this section are decoded from SME encodings.

313029282726252423222120191817161514131211109876543210
11000000op0000op10op2op3op40op5
Decode fields Instruction details Feature
op0op1op2op3op4op5
00 1 00 010 x0 0 MOVA (vector to array, two registers)FEAT_SME2
00 1 00 011 00 0 MOVA (vector to array, four registers)FEAT_SME2
00 1 00 011 10 0 UNALLOCATED-
00 1 01 01x x0 0 UNALLOCATED-
0 SME move vector to array-
1 0x 000 x0 0 SME2 move vector to tile, two registers-
1 0x 001 00 0 SME2 move vector to tile, four registers-
1 0x 001 10 0 UNALLOCATED-
1 0x 0xx x0 1 UNALLOCATED-
1 0x 0xx x1 UNALLOCATED-
1 0x 1xx UNALLOCATED-
1 1x UNALLOCATED-
!= 00 1 0x 01x x0 0 UNALLOCATED-

SME move vector to array

The encodings in this section are decoded from SME Move into Array.

313029282726252423222120191817161514131211109876543210
11000000size00000QVRsPgZn0opc
Decode fields Instruction Details Feature
sizeQ
000MOVA (vector to tile, single)8-bitFEAT_SME
010MOVA (vector to tile, single)16-bitFEAT_SME
100MOVA (vector to tile, single)32-bitFEAT_SME
110MOVA (vector to tile, single)64-bitFEAT_SME
111MOVA (vector to tile, single)128-bitFEAT_SME
!= 111UNALLOCATED-

SME2 move vector to tile, two registers

The encodings in this section are decoded from SME Move into Array.

313029282726252423222120191817161514131211109876543210
11000000size000100VRs000Zn000opc
Decode fields Instruction Details Feature
size
00MOVA (vector to tile, two registers)8-bitFEAT_SME2
01MOVA (vector to tile, two registers)16-bitFEAT_SME2
10MOVA (vector to tile, two registers)32-bitFEAT_SME2
11MOVA (vector to tile, two registers)64-bitFEAT_SME2

SME2 move vector to tile, four registers

The encodings in this section are decoded from SME Move into Array.

313029282726252423222120191817161514131211109876543210
11000000size000100VRs001Zn0000opc
Decode fields Instruction Details Feature
sizeopc
000xxMOVA (vector to tile, four registers)8-bitFEAT_SME2
010xxMOVA (vector to tile, four registers)16-bitFEAT_SME2
100xxMOVA (vector to tile, four registers)32-bitFEAT_SME2
11MOVA (vector to tile, four registers)64-bitFEAT_SME2
!= 111xxUNALLOCATED-

SME Move from Array

The encodings in this section are decoded from SME encodings.

313029282726252423222120191817161514131211109876543210
11000000op0000op11op2op3op4op5
Decode fields Instruction details Feature
op0op1op2op3op4op5
00 1 00 010 00 x0 MOVA (array to vector, two registers)FEAT_SME2
00 1 00 010 10 x0 MOVAZ (array to vector, two registers)FEAT_SME2p1
00 1 00 011 00 00 MOVA (array to vector, four registers)FEAT_SME2
00 1 00 011 10 00 MOVAZ (array to vector, four registers)FEAT_SME2p1
00 1 00 011 x0 10 UNALLOCATED-
00 1 01 01x x0 x0 UNALLOCATED-
0 000 1x SME zeroing move array to vector-
0 0x SME move array to vector-
0 != 000 1x UNALLOCATED-
1 0x 000 00 x0 SME2 move tile to vector, two registers-
1 0x 000 10 x0 SME2 zeroing move tile to vector, two registers-
1 0x 001 00 00 SME2 move tile to vector, four registers-
1 0x 001 10 00 SME2 zeroing move tile to vector, four registers-
1 0x 001 x0 10 UNALLOCATED-
1 0x 0xx x0 x1 UNALLOCATED-
1 0x 0xx x1 UNALLOCATED-
1 0x 1xx UNALLOCATED-
1 1x UNALLOCATED-
!= 00 1 0x 01x x0 x0 UNALLOCATED-

SME zeroing move array to vector

The encodings in this section are decoded from SME Move from Array.

313029282726252423222120191817161514131211109876543210
11000000size00001QVRs0001opcZd
Decode fields Instruction Details Feature
sizeQ
000MOVAZ (tile to vector, single)8-bitFEAT_SME2p1
010MOVAZ (tile to vector, single)16-bitFEAT_SME2p1
100MOVAZ (tile to vector, single)32-bitFEAT_SME2p1
110MOVAZ (tile to vector, single)64-bitFEAT_SME2p1
111MOVAZ (tile to vector, single)128-bitFEAT_SME2p1
!= 111UNALLOCATED-

SME move array to vector

The encodings in this section are decoded from SME Move from Array.

313029282726252423222120191817161514131211109876543210
11000000size00001QVRsPg0opcZd
Decode fields Instruction Details Feature
sizeQ
000MOVA (tile to vector, single)8-bitFEAT_SME
010MOVA (tile to vector, single)16-bitFEAT_SME
100MOVA (tile to vector, single)32-bitFEAT_SME
110MOVA (tile to vector, single)64-bitFEAT_SME
111MOVA (tile to vector, single)128-bitFEAT_SME
!= 111UNALLOCATED-

SME2 move tile to vector, two registers

The encodings in this section are decoded from SME Move from Array.

313029282726252423222120191817161514131211109876543210
11000000size000110VRs00000opcZd0
Decode fields Instruction Details Feature
size
00MOVA (tile to vector, two registers)8-bitFEAT_SME2
01MOVA (tile to vector, two registers)16-bitFEAT_SME2
10MOVA (tile to vector, two registers)32-bitFEAT_SME2
11MOVA (tile to vector, two registers)64-bitFEAT_SME2

SME2 zeroing move tile to vector, two registers

The encodings in this section are decoded from SME Move from Array.

313029282726252423222120191817161514131211109876543210
11000000size000110VRs00010opcZd0
Decode fields Instruction Details Feature
size
00MOVAZ (tile to vector, two registers)8-bitFEAT_SME2p1
01MOVAZ (tile to vector, two registers)16-bitFEAT_SME2p1
10MOVAZ (tile to vector, two registers)32-bitFEAT_SME2p1
11MOVAZ (tile to vector, two registers)64-bitFEAT_SME2p1

SME2 move tile to vector, four registers

The encodings in this section are decoded from SME Move from Array.

313029282726252423222120191817161514131211109876543210
11000000size000110VRs00100opcZd00
Decode fields Instruction Details Feature
sizeopc
000xxMOVA (tile to vector, four registers)8-bitFEAT_SME2
010xxMOVA (tile to vector, four registers)16-bitFEAT_SME2
100xxMOVA (tile to vector, four registers)32-bitFEAT_SME2
11MOVA (tile to vector, four registers)64-bitFEAT_SME2
!= 111xxUNALLOCATED-

SME2 zeroing move tile to vector, four registers

The encodings in this section are decoded from SME Move from Array.

313029282726252423222120191817161514131211109876543210
11000000size000110VRs00110opcZd00
Decode fields Instruction Details Feature
sizeopc
000xxMOVAZ (tile to vector, four registers)8-bitFEAT_SME2p1
010xxMOVAZ (tile to vector, four registers)16-bitFEAT_SME2p1
100xxMOVAZ (tile to vector, four registers)32-bitFEAT_SME2p1
11MOVAZ (tile to vector, four registers)64-bitFEAT_SME2p1
!= 111xxUNALLOCATED-

SME Add Vector to Array

The encodings in this section are decoded from SME encodings.

313029282726252423222120191817161514131211109876543210
11000000op0010op1op20
Decode fields Instruction details
op0op1op2
0 UNALLOCATED
1 00 0 SME add vector to array
1 00 1 UNALLOCATED
1 != 00 UNALLOCATED

SME add vector to array

The encodings in this section are decoded from SME Add Vector to Array.

313029282726252423222120191817161514131211109876543210
110000001op01000VPmPnZn00opc2
Decode fields Instruction Details Feature
opVopc2
01xxUNALLOCATED-
000xxADDHA32-bitFEAT_SME
010xxADDVA32-bitFEAT_SME
10ADDHA64-bitFEAT_SME_I16I64
11ADDVA64-bitFEAT_SME_I16I64

SME2 Multi-vector - Multiple and Single Array Vectors (Two registers)

The encodings in this section are decoded from SME encodings.

313029282726252423222120191817161514131211109876543210
110000010op0100op1op2op3
Decode fields Instruction details Feature
op0op1op2op3
0 000 000 1 FMLALL (multiple and single vector)Two ZA quad-vectorsFEAT_SME_F8F32
0 000 != 000 1 UNALLOCATED-
0 010 SME2 single-multi long FMA two sources-
0 011 SME2 multiple and single vector long FMA one source-
0 100 SME2 single-multi FP dot product two registers-
0 101 x1x SME2 single-multi mixed dot product two registers-
1 000 1 UNALLOCATED-
1 010 SME2 single-multi long MLA two sources-
1 011 SME2 multiple and single vector long MLA one source-
1 100 UNALLOCATED-
1 101 x1x SME2 single-multi two-way dot product two registers-
000 0 SME2 single-multi long long MLA two sources-
001 SME2 multiple and single vector long long FMA one source-
101 x0x SME2 single-multi four-way dot product two registers-
110 0xx SME2 single-multi ternary FP two registers-
110 1xx SME2 single-multi ternary int two registers-
111 0xx SME2 single-multi ternary FP16 two registers-
111 1xx UNALLOCATED-

SME2 single-multi long FMA two sources

The encodings in this section are decoded from SME2 Multi-vector - Multiple and Single Array Vectors (Two registers).

313029282726252423222120191817161514131211109876543210
110000010010Zm0Rv010ZnopSo2off2
Decode fields Instruction Details Feature
opSo2
000FMLAL (multiple and single vector, FP16 to FP32)FEAT_SME2
001FMLAL (multiple and single vector, FP8 to FP16)FEAT_SME_F8F16
010FMLSL (multiple and single vector)FEAT_SME2
011UNALLOCATED-
11UNALLOCATED-
100BFMLAL (multiple and single vector)FEAT_SME2
110BFMLSL (multiple and single vector)FEAT_SME2

SME2 multiple and single vector long FMA one source

The encodings in this section are decoded from SME2 Multi-vector - Multiple and Single Array Vectors (Two registers).

313029282726252423222120191817161514131211109876543210
110000010010Zm0Rv011ZnopSoff3
Decode fields Instruction Details Feature
opS
00FMLAL (multiple and single vector, FP16 to FP32)FEAT_SME2
01FMLSL (multiple and single vector)FEAT_SME2
10BFMLAL (multiple and single vector)FEAT_SME2
11BFMLSL (multiple and single vector)FEAT_SME2

SME2 single-multi FP dot product two registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple and Single Array Vectors (Two registers).

313029282726252423222120191817161514131211109876543210
110000010010Zm0Rv100Znopcoff3
Decode fields Instruction Details Feature
opc
00FDOT (2-way, multiple and single vector, FP16 to FP32)FEAT_SME2
01FDOT (2-way, multiple and single vector, FP8 to FP16)FEAT_SME_F8F16
10BFDOT (multiple and single vector)FEAT_SME2
11FDOT (4-way, multiple and single vector)FEAT_SME_F8F32

SME2 single-multi mixed dot product two registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple and Single Array Vectors (Two registers).

313029282726252423222120191817161514131211109876543210
110000010010Zm0Rv101ZnU1off3
Decode fields Instruction Details Feature
U
0USDOT (4-way, multiple and single vector)FEAT_SME2
1SUDOT (4-way, multiple and single vector)FEAT_SME2

SME2 single-multi long MLA two sources

The encodings in this section are decoded from SME2 Multi-vector - Multiple and Single Array Vectors (Two registers).

313029282726252423222120191817161514131211109876543210
110000010110Zm0Rv010ZnUSopoff2
Decode fields Instruction Details Feature
USop
1UNALLOCATED-
000SMLAL (multiple and single vector)FEAT_SME2
010SMLSL (multiple and single vector)FEAT_SME2
100UMLAL (multiple and single vector)FEAT_SME2
110UMLSL (multiple and single vector)FEAT_SME2

SME2 multiple and single vector long MLA one source

The encodings in this section are decoded from SME2 Multi-vector - Multiple and Single Array Vectors (Two registers).

313029282726252423222120191817161514131211109876543210
110000010110Zm0Rv011ZnUSoff3
Decode fields Instruction Details Feature
US
00SMLAL (multiple and single vector)FEAT_SME2
01SMLSL (multiple and single vector)FEAT_SME2
10UMLAL (multiple and single vector)FEAT_SME2
11UMLSL (multiple and single vector)FEAT_SME2

SME2 single-multi two-way dot product two registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple and Single Array Vectors (Two registers).

313029282726252423222120191817161514131211109876543210
110000010110Zm0Rv101ZnU1off3
Decode fields Instruction Details Feature
U
0SDOT (2-way, multiple and single vector)FEAT_SME2
1UDOT (2-way, multiple and single vector)FEAT_SME2

SME2 single-multi long long MLA two sources

The encodings in this section are decoded from SME2 Multi-vector - Multiple and Single Array Vectors (Two registers).

313029282726252423222120191817161514131211109876543210
110000010sz10Zm0Rv000ZnUSop0o1
Decode fields Instruction Details Feature
szUSop
000SMLALL (multiple and single vector)FEAT_SME2
010SMLSLL (multiple and single vector)FEAT_SME2
100UMLALL (multiple and single vector)FEAT_SME2
110UMLSLL (multiple and single vector)FEAT_SME2
011UNALLOCATED-
0001USMLALL (multiple and single vector)FEAT_SME2
0101SUMLALL (multiple and single vector)FEAT_SME2
11UNALLOCATED-

SME2 multiple and single vector long long FMA one source

The encodings in this section are decoded from SME2 Multi-vector - Multiple and Single Array Vectors (Two registers).

313029282726252423222120191817161514131211109876543210
110000010sz10Zm0Rv001ZnUSopoff2
Decode fields Instruction Details Feature
szUSop
000SMLALL (multiple and single vector)FEAT_SME2
010SMLSLL (multiple and single vector)FEAT_SME2
100UMLALL (multiple and single vector)FEAT_SME2
110UMLSLL (multiple and single vector)FEAT_SME2
0001USMLALL (multiple and single vector)FEAT_SME2
0011UNALLOCATED-
011UNALLOCATED-
11UNALLOCATED-

SME2 single-multi four-way dot product two registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple and Single Array Vectors (Two registers).

313029282726252423222120191817161514131211109876543210
110000010sz10Zm0Rv101ZnU0off3
Decode fields Instruction Details Feature
U
0SDOT (4-way, multiple and single vector)FEAT_SME2
1UDOT (4-way, multiple and single vector)FEAT_SME2

SME2 single-multi ternary FP two registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple and Single Array Vectors (Two registers).

313029282726252423222120191817161514131211109876543210
110000010sz10Zm0Rv110Zn0Soff3
Decode fields Instruction Details Feature
S
0FMLA (multiple and single vector)FEAT_SME2
1FMLS (multiple and single vector)FEAT_SME2

SME2 single-multi ternary int two registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple and Single Array Vectors (Two registers).

313029282726252423222120191817161514131211109876543210
110000010sz10Zm0Rv110Zn1Soff3
Decode fields Instruction Details Feature
S
0ADD (to array, multiple and single vector)FEAT_SME2
1SUB (to array, multiple and single vector)FEAT_SME2

SME2 single-multi ternary FP16 two registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple and Single Array Vectors (Two registers).

313029282726252423222120191817161514131211109876543210
110000010sz10Zm0Rv111Zn0Soff3
Decode fields Instruction Details Feature
szS
00FMLA (multiple and single vector)FEAT_SME_F16F16
01FMLS (multiple and single vector)FEAT_SME_F16F16
10BFMLA (multiple and single vector)FEAT_SME_B16B16
11BFMLS (multiple and single vector)FEAT_SME_B16B16

SME2 Multi-vector - Multiple and Single Array Vectors (Four registers)

The encodings in this section are decoded from SME encodings.

313029282726252423222120191817161514131211109876543210
110000010op0110op1op2op3
Decode fields Instruction details Feature
op0op1op2op3
0 000 000 1 FMLALL (multiple and single vector)Four ZA quad-vectorsFEAT_SME_F8F32
0 000 != 000 1 UNALLOCATED-
0 001 000 FMLALL (multiple and single vector)One ZA quad-vectorFEAT_SME_F8F32
0 001 001 UNALLOCATED-
0 010 SME2 single-multi long FMA four sources-
0 011 00x FMLAL (multiple and single vector, FP8 to FP16)One ZA double-vectorFEAT_SME_F8F16
0 0x1 1xx UNALLOCATED-
0 0x1 != 00x01xUNALLOCATED-
0 100 SME2 single-multi FP dot product four registers-
0 101 x1x SME2 single-multi mixed dot product four registers-
1 000 1 UNALLOCATED-
1 010 SME2 single-multi long MLA four sources-
1 0x1 UNALLOCATED-
1 100 UNALLOCATED-
1 101 x1x SME2 single-multi two-way dot product four registers-
000 0 SME2 single-multi long long MLA four sources-
101 x0x SME2 single-multi four-way dot product four registers-
110 0xx SME2 single-multi ternary FP four registers-
110 1xx SME2 single-multi ternary int four registers-
111 0xx SME2 single-multi ternary FP16 four registers-
111 1xx UNALLOCATED-

SME2 single-multi long FMA four sources

The encodings in this section are decoded from SME2 Multi-vector - Multiple and Single Array Vectors (Four registers).

313029282726252423222120191817161514131211109876543210
110000010011Zm0Rv010ZnopSo2off2
Decode fields Instruction Details Feature
opSo2
000FMLAL (multiple and single vector, FP16 to FP32)FEAT_SME2
001FMLAL (multiple and single vector, FP8 to FP16)FEAT_SME_F8F16
010FMLSL (multiple and single vector)FEAT_SME2
011UNALLOCATED-
11UNALLOCATED-
100BFMLAL (multiple and single vector)FEAT_SME2
110BFMLSL (multiple and single vector)FEAT_SME2

SME2 single-multi FP dot product four registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple and Single Array Vectors (Four registers).

313029282726252423222120191817161514131211109876543210
110000010011Zm0Rv100Znopcoff3
Decode fields Instruction Details Feature
opc
00FDOT (2-way, multiple and single vector, FP16 to FP32)FEAT_SME2
01FDOT (2-way, multiple and single vector, FP8 to FP16)FEAT_SME_F8F16
10BFDOT (multiple and single vector)FEAT_SME2
11FDOT (4-way, multiple and single vector)FEAT_SME_F8F32

SME2 single-multi mixed dot product four registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple and Single Array Vectors (Four registers).

313029282726252423222120191817161514131211109876543210
110000010011Zm0Rv101ZnU1off3
Decode fields Instruction Details Feature
U
0USDOT (4-way, multiple and single vector)FEAT_SME2
1SUDOT (4-way, multiple and single vector)FEAT_SME2

SME2 single-multi long MLA four sources

The encodings in this section are decoded from SME2 Multi-vector - Multiple and Single Array Vectors (Four registers).

313029282726252423222120191817161514131211109876543210
110000010111Zm0Rv010ZnUSopoff2
Decode fields Instruction Details Feature
USop
1UNALLOCATED-
000SMLAL (multiple and single vector)FEAT_SME2
010SMLSL (multiple and single vector)FEAT_SME2
100UMLAL (multiple and single vector)FEAT_SME2
110UMLSL (multiple and single vector)FEAT_SME2

SME2 single-multi two-way dot product four registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple and Single Array Vectors (Four registers).

313029282726252423222120191817161514131211109876543210
110000010111Zm0Rv101ZnU1off3
Decode fields Instruction Details Feature
U
0SDOT (2-way, multiple and single vector)FEAT_SME2
1UDOT (2-way, multiple and single vector)FEAT_SME2

SME2 single-multi long long MLA four sources

The encodings in this section are decoded from SME2 Multi-vector - Multiple and Single Array Vectors (Four registers).

313029282726252423222120191817161514131211109876543210
110000010sz11Zm0Rv000ZnUSop0o1
Decode fields Instruction Details Feature
szUSop
000SMLALL (multiple and single vector)FEAT_SME2
010SMLSLL (multiple and single vector)FEAT_SME2
100UMLALL (multiple and single vector)FEAT_SME2
110UMLSLL (multiple and single vector)FEAT_SME2
011UNALLOCATED-
0001USMLALL (multiple and single vector)FEAT_SME2
0101SUMLALL (multiple and single vector)FEAT_SME2
11UNALLOCATED-

SME2 single-multi four-way dot product four registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple and Single Array Vectors (Four registers).

313029282726252423222120191817161514131211109876543210
110000010sz11Zm0Rv101ZnU0off3
Decode fields Instruction Details Feature
U
0SDOT (4-way, multiple and single vector)FEAT_SME2
1UDOT (4-way, multiple and single vector)FEAT_SME2

SME2 single-multi ternary FP four registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple and Single Array Vectors (Four registers).

313029282726252423222120191817161514131211109876543210
110000010sz11Zm0Rv110Zn0Soff3
Decode fields Instruction Details Feature
S
0FMLA (multiple and single vector)FEAT_SME2
1FMLS (multiple and single vector)FEAT_SME2

SME2 single-multi ternary int four registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple and Single Array Vectors (Four registers).

313029282726252423222120191817161514131211109876543210
110000010sz11Zm0Rv110Zn1Soff3
Decode fields Instruction Details Feature
S
0ADD (to array, multiple and single vector)FEAT_SME2
1SUB (to array, multiple and single vector)FEAT_SME2

SME2 single-multi ternary FP16 four registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple and Single Array Vectors (Four registers).

313029282726252423222120191817161514131211109876543210
110000010sz11Zm0Rv111Zn0Soff3
Decode fields Instruction Details Feature
szS
00FMLA (multiple and single vector)FEAT_SME_F16F16
01FMLS (multiple and single vector)FEAT_SME_F16F16
10BFMLA (multiple and single vector)FEAT_SME_B16B16
11BFMLS (multiple and single vector)FEAT_SME_B16B16

SME2 Multi-vector - Lookup table with 6-bit indices

The encodings in this section are decoded from SME encodings.

313029282726252423222120191817161514131211109876543210
11000001011111op0op1
Decode fields Instruction details Feature
op0op1
01 xx00 LUTI6 (vector, 16-bit)ConsecutiveFEAT_SME2p3
01 xx1x UNALLOCATED-
01 != xx00xx01UNALLOCATED-
11 00xx LUTI6 (vector, 16-bit)StridedFEAT_SME2p3
11 1xxx UNALLOCATED-
11 != 00xx01xxUNALLOCATED-
x0 UNALLOCATED-

SME2 Multi-vector - Multiple Array Vectors (Two registers)

The encodings in this section are decoded from SME encodings.

313029282726252423222120191817161514131211109876543210
110000011op01op1op200op3op4op5op6
Decode fields Instruction details Feature
op0op1op2op3op4op5op6
0 000 1 000 0 FMLALL (multiple vectors)Two ZA quad-vectorsFEAT_SME_F8F32
0 000 1 001 0 UNALLOCATED-
0 000 1 10x 0 UNALLOCATED-
0 000 1 x0x 1 UNALLOCATED-
0 010 0 xx0 SME2 multiple vectors long FMA two sources-
0 010 1 000 FMLAL (multiple vectors, FP8 to FP16)Two ZA double-vectorsFEAT_SME_F8F16
0 010 1 100 UNALLOCATED-
0 010 1 x01 UNALLOCATED-
0 0x1 1 UNALLOCATED-
0 100 x0x SME2 multiple vectors FP dot product two registers-
0 101 0 01x USDOT (4-way, multiple vectors)Two ZA single-vectorsFEAT_SME2
0 101 0 11x UNALLOCATED-
0 110 1 x0x UNALLOCATED-
0 1x1 1 UNALLOCATED-
0 xx0 1 x1x UNALLOCATED-
0 != xx0 1 UNALLOCATED-
1 010 0 xx0 SME2 multiple vectors long MLA two sources-
1 100 0 x0x UNALLOCATED-
1 101 0 x1x SME2 multiple vectors two-way dot product two registers-
1 1 UNALLOCATED-
00 00 111 0 0xx SME2 multiple vectors binary FP two registers-
00 00 111 0 1xx SME2 multiple vectors binary int two registers-
00 10 111 0 0xx SME2 multiple vectors binary FP16 two registers-
00 10 111 0 1xx UNALLOCATED-
00 x1 111 0 UNALLOCATED-
000 0 0 SME2 multiple vectors long long MLA two sources-
000 0 1 UNALLOCATED-
010 0 xx1 UNALLOCATED-
0x1 0 UNALLOCATED-
100 0 x1x SME2 multiple vectors ternary FP16 two registers-
101 0 x0x SME2 multiple vectors four-way dot product two registers-
110 0 0xx SME2 multiple vectors ternary FP two registers-
110 0 1xx SME2 multiple vectors ternary int two registers-
!= 00 111 0 UNALLOCATED-

SME2 multiple vectors long FMA two sources

The encodings in this section are decoded from SME2 Multi-vector - Multiple Array Vectors (Two registers).

313029282726252423222120191817161514131211109876543210
11000001101Zm00Rv010Zn0opS0off2
Decode fields Instruction Details Feature
opS
00FMLAL (multiple vectors, FP16 to FP32)FEAT_SME2
01FMLSL (multiple vectors)FEAT_SME2
10BFMLAL (multiple vectors)FEAT_SME2
11BFMLSL (multiple vectors)FEAT_SME2

SME2 multiple vectors FP dot product two registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple Array Vectors (Two registers).

313029282726252423222120191817161514131211109876543210
11000001101Zm00Rv100Znopc0off3
Decode fields Instruction Details Feature
opc
00FDOT (2-way, multiple vectors, FP16 to FP32)FEAT_SME2
01BFDOT (multiple vectors)FEAT_SME2
10FDOT (2-way, multiple vectors, FP8 to FP16)FEAT_SME_F8F16
11FDOT (4-way, multiple vectors)FEAT_SME_F8F32

SME2 multiple vectors long MLA two sources

The encodings in this section are decoded from SME2 Multi-vector - Multiple Array Vectors (Two registers).

313029282726252423222120191817161514131211109876543210
11000001111Zm00Rv010Zn0US0off2
Decode fields Instruction Details Feature
US
00SMLAL (multiple vectors)FEAT_SME2
01SMLSL (multiple vectors)FEAT_SME2
10UMLAL (multiple vectors)FEAT_SME2
11UMLSL (multiple vectors)FEAT_SME2

SME2 multiple vectors two-way dot product two registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple Array Vectors (Two registers).

313029282726252423222120191817161514131211109876543210
11000001111Zm00Rv101Zn0U1off3
Decode fields Instruction Details Feature
U
0SDOT (2-way, multiple vectors)FEAT_SME2
1UDOT (2-way, multiple vectors)FEAT_SME2

SME2 multiple vectors binary FP two registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple Array Vectors (Two registers).

313029282726252423222120191817161514131211109876543210
110000011sz1000000Rv111Zm00Soff3
Decode fields Instruction Details Feature
S
0FADDFEAT_SME2
1FSUBFEAT_SME2

SME2 multiple vectors binary int two registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple Array Vectors (Two registers).

313029282726252423222120191817161514131211109876543210
110000011sz1000000Rv111Zm01Soff3
Decode fields Instruction Details Feature
S
0ADD (to array, array and multiple vectors)FEAT_SME2
1SUB (to array, array and multiple vectors)FEAT_SME2

SME2 multiple vectors binary FP16 two registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple Array Vectors (Two registers).

313029282726252423222120191817161514131211109876543210
110000011sz1001000Rv111Zm00Soff3
Decode fields Instruction Details Feature
szS
00FADDFEAT_SME_F16F16 || FEAT_SME_F8F16
01FSUBFEAT_SME_F16F16 || FEAT_SME_F8F16
10BFADDFEAT_SME_B16B16
11BFSUBFEAT_SME_B16B16

SME2 multiple vectors long long MLA two sources

The encodings in this section are decoded from SME2 Multi-vector - Multiple Array Vectors (Two registers).

313029282726252423222120191817161514131211109876543210
110000011sz1Zm00Rv000Zn0USop0o1
Decode fields Instruction Details Feature
szUSop
000SMLALL (multiple vectors)FEAT_SME2
010SMLSLL (multiple vectors)FEAT_SME2
100UMLALL (multiple vectors)FEAT_SME2
110UMLSLL (multiple vectors)FEAT_SME2
0001USMLALL (multiple vectors)FEAT_SME2
0011UNALLOCATED-
011UNALLOCATED-
11UNALLOCATED-

SME2 multiple vectors ternary FP16 two registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple Array Vectors (Two registers).

313029282726252423222120191817161514131211109876543210
110000011sz1Zm00Rv100Zn0S1off3
Decode fields Instruction Details Feature
szS
00FMLA (multiple vectors)FEAT_SME_F16F16
01FMLS (multiple vectors)FEAT_SME_F16F16
10BFMLA (multiple vectors)FEAT_SME_B16B16
11BFMLS (multiple vectors)FEAT_SME_B16B16

SME2 multiple vectors four-way dot product two registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple Array Vectors (Two registers).

313029282726252423222120191817161514131211109876543210
110000011sz1Zm00Rv101Zn0U0off3
Decode fields Instruction Details Feature
U
0SDOT (4-way, multiple vectors)FEAT_SME2
1UDOT (4-way, multiple vectors)FEAT_SME2

SME2 multiple vectors ternary FP two registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple Array Vectors (Two registers).

313029282726252423222120191817161514131211109876543210
110000011sz1Zm00Rv110Zn00Soff3
Decode fields Instruction Details Feature
S
0FMLA (multiple vectors)FEAT_SME2
1FMLS (multiple vectors)FEAT_SME2

SME2 multiple vectors ternary int two registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple Array Vectors (Two registers).

313029282726252423222120191817161514131211109876543210
110000011sz1Zm00Rv110Zn01Soff3
Decode fields Instruction Details Feature
S
0ADD (to array, multiple vectors)FEAT_SME2
1SUB (to array, multiple vectors)FEAT_SME2

SME2 Multi-vector - Multiple Array Vectors (Four registers)

The encodings in this section are decoded from SME encodings.

313029282726252423222120191817161514131211109876543210
110000011op01op1op210op3op4op5op6
Decode fields Instruction details Feature
op0op1op2op3op4op5op6
0 x0 000 01 000 0 FMLALL (multiple vectors)Four ZA quad-vectorsFEAT_SME_F8F32
0 x0 000 01 001 0 UNALLOCATED-
0 x0 000 01 10x 0 UNALLOCATED-
0 x0 000 01 x0x 1 UNALLOCATED-
0 x0 010 00 xx0 SME2 multiple vectors long FMA four sources-
0 x0 010 01 000 FMLAL (multiple vectors, FP8 to FP16)Four ZA double-vectorsFEAT_SME_F8F16
0 x0 010 01 100 UNALLOCATED-
0 x0 010 01 x01 UNALLOCATED-
0 x0 0x1 01 UNALLOCATED-
0 x0 100 0x x0x SME2 multiple vectors FP dot product four registers-
0 x0 101 00 01x USDOT (4-way, multiple vectors)Four ZA single-vectorsFEAT_SME2
0 x0 101 00 11x UNALLOCATED-
0 x0 110 01 x0x UNALLOCATED-
0 x0 1x1 01 UNALLOCATED-
0 x0 xx0 01 x1x UNALLOCATED-
0 x0 != xx0 01 UNALLOCATED-
1 x0 010 00 xx0 SME2 multiple vectors long MLA four sources-
1 x0 100 00 x0x UNALLOCATED-
1 x0 101 00 x1x SME2 multiple vectors two-way dot product four registers-
1 x0 01 UNALLOCATED-
00 00 111 00 0xx SME2 multiple vectors binary FP four registers-
00 00 111 00 1xx SME2 multiple vectors binary int four registers-
00 10 111 00 0xx SME2 multiple vectors binary FP16 four registers-
00 10 111 00 1xx UNALLOCATED-
x0 000 00 0 SME2 multiple vectors long long MLA four sources-
x0 000 00 1 UNALLOCATED-
x0 010 00 xx1 UNALLOCATED-
x0 0x1 00 UNALLOCATED-
x0 100 00 x1x SME2 multiple vectors ternary FP16 four registers-
x0 101 00 x0x SME2 multiple vectors four-way dot product four registers-
x0 110 00 0xx SME2 multiple vectors ternary FP four registers-
x0 110 00 1xx SME2 multiple vectors ternary int four registers-
x0 1x UNALLOCATED-
x1 UNALLOCATED-
!= 00 x0 111 00 UNALLOCATED-

SME2 multiple vectors long FMA four sources

The encodings in this section are decoded from SME2 Multi-vector - Multiple Array Vectors (Four registers).

313029282726252423222120191817161514131211109876543210
11000001101Zm010Rv010Zn00opS0off2
Decode fields Instruction Details Feature
opS
00FMLAL (multiple vectors, FP16 to FP32)FEAT_SME2
01FMLSL (multiple vectors)FEAT_SME2
10BFMLAL (multiple vectors)FEAT_SME2
11BFMLSL (multiple vectors)FEAT_SME2

SME2 multiple vectors FP dot product four registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple Array Vectors (Four registers).

313029282726252423222120191817161514131211109876543210
11000001101Zm010Rv100Zn0opc0off3
Decode fields Instruction Details Feature
opc
00FDOT (2-way, multiple vectors, FP16 to FP32)FEAT_SME2
01BFDOT (multiple vectors)FEAT_SME2
10FDOT (2-way, multiple vectors, FP8 to FP16)FEAT_SME_F8F16
11FDOT (4-way, multiple vectors)FEAT_SME_F8F32

SME2 multiple vectors long MLA four sources

The encodings in this section are decoded from SME2 Multi-vector - Multiple Array Vectors (Four registers).

313029282726252423222120191817161514131211109876543210
11000001111Zm010Rv010Zn00US0off2
Decode fields Instruction Details Feature
US
00SMLAL (multiple vectors)FEAT_SME2
01SMLSL (multiple vectors)FEAT_SME2
10UMLAL (multiple vectors)FEAT_SME2
11UMLSL (multiple vectors)FEAT_SME2

SME2 multiple vectors two-way dot product four registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple Array Vectors (Four registers).

313029282726252423222120191817161514131211109876543210
11000001111Zm010Rv101Zn00U1off3
Decode fields Instruction Details Feature
U
0SDOT (2-way, multiple vectors)FEAT_SME2
1UDOT (2-way, multiple vectors)FEAT_SME2

SME2 multiple vectors binary FP four registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple Array Vectors (Four registers).

313029282726252423222120191817161514131211109876543210
110000011sz1000010Rv111Zm000Soff3
Decode fields Instruction Details Feature
S
0FADDFEAT_SME2
1FSUBFEAT_SME2

SME2 multiple vectors binary int four registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple Array Vectors (Four registers).

313029282726252423222120191817161514131211109876543210
110000011sz1000010Rv111Zm001Soff3
Decode fields Instruction Details Feature
S
0ADD (to array, array and multiple vectors)FEAT_SME2
1SUB (to array, array and multiple vectors)FEAT_SME2

SME2 multiple vectors binary FP16 four registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple Array Vectors (Four registers).

313029282726252423222120191817161514131211109876543210
110000011sz1001010Rv111Zm000Soff3
Decode fields Instruction Details Feature
szS
00FADDFEAT_SME_F16F16 || FEAT_SME_F8F16
01FSUBFEAT_SME_F16F16 || FEAT_SME_F8F16
10BFADDFEAT_SME_B16B16
11BFSUBFEAT_SME_B16B16

SME2 multiple vectors long long MLA four sources

The encodings in this section are decoded from SME2 Multi-vector - Multiple Array Vectors (Four registers).

313029282726252423222120191817161514131211109876543210
110000011sz1Zm010Rv000Zn00USop0o1
Decode fields Instruction Details Feature
szUSop
000SMLALL (multiple vectors)FEAT_SME2
010SMLSLL (multiple vectors)FEAT_SME2
100UMLALL (multiple vectors)FEAT_SME2
110UMLSLL (multiple vectors)FEAT_SME2
0001USMLALL (multiple vectors)FEAT_SME2
0011UNALLOCATED-
011UNALLOCATED-
11UNALLOCATED-

SME2 multiple vectors ternary FP16 four registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple Array Vectors (Four registers).

313029282726252423222120191817161514131211109876543210
110000011sz1Zm010Rv100Zn00S1off3
Decode fields Instruction Details Feature
szS
00FMLA (multiple vectors)FEAT_SME_F16F16
01FMLS (multiple vectors)FEAT_SME_F16F16
10BFMLA (multiple vectors)FEAT_SME_B16B16
11BFMLS (multiple vectors)FEAT_SME_B16B16

SME2 multiple vectors four-way dot product four registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple Array Vectors (Four registers).

313029282726252423222120191817161514131211109876543210
110000011sz1Zm010Rv101Zn00U0off3
Decode fields Instruction Details Feature
U
0SDOT (4-way, multiple vectors)FEAT_SME2
1UDOT (4-way, multiple vectors)FEAT_SME2

SME2 multiple vectors ternary FP four registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple Array Vectors (Four registers).

313029282726252423222120191817161514131211109876543210
110000011sz1Zm010Rv110Zn000Soff3
Decode fields Instruction Details Feature
S
0FMLA (multiple vectors)FEAT_SME2
1FMLS (multiple vectors)FEAT_SME2

SME2 multiple vectors ternary int four registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple Array Vectors (Four registers).

313029282726252423222120191817161514131211109876543210
110000011sz1Zm010Rv110Zn001Soff3
Decode fields Instruction Details Feature
S
0ADD (to array, multiple vectors)FEAT_SME2
1SUB (to array, multiple vectors)FEAT_SME2

SME2 Multi-vector - Indexed (One register)

The encodings in this section are decoded from SME encodings.

313029282726252423222120191817161514131211109876543210
11000001op000op1op2
Decode fields Instruction details Feature
op0op1op2
00 SME2 multi-vec indexed long long MLA one source 32-bit-
01 000 FMLALL (multiple and indexed vector)One ZA quad-vectorFEAT_SME_F8F32
01 != 000 UNALLOCATED-
10 0 xx0 SME2 multi-vec indexed long long MLA one source 64-bit-
10 0 xx1 UNALLOCATED-
10 1 SME2 multi-vec indexed long FMA one source-
11 0 0xx FMLAL (multiple and indexed vector, FP8 to FP16)One ZA double-vectorFEAT_SME_F8F16
11 0 1xx UNALLOCATED-
11 1 SME2 multi-vec indexed long MLA one source-

SME2 multi-vec indexed long long MLA one source 32-bit

The encodings in this section are decoded from SME2 Multi-vector - Indexed (One register).

313029282726252423222120191817161514131211109876543210
110000010000Zmi4hRvi4lZnUSopoff2
Decode fields Instruction Details Feature
USop
11UNALLOCATED-
000SMLALL (multiple and indexed vector)FEAT_SME2
001USMLALL (multiple and indexed vector)FEAT_SME2
010SMLSLL (multiple and indexed vector)FEAT_SME2
100UMLALL (multiple and indexed vector)FEAT_SME2
101SUMLALL (multiple and indexed vector)FEAT_SME2
110UMLSLL (multiple and indexed vector)FEAT_SME2

SME2 multi-vec indexed long long MLA one source 64-bit

The encodings in this section are decoded from SME2 Multi-vector - Indexed (One register).

313029282726252423222120191817161514131211109876543210
110000011000Zmi3hRv0i3lZnUS0off2
Decode fields Instruction Details Feature
US
00SMLALL (multiple and indexed vector)FEAT_SME2 && FEAT_SME_I16I64
01SMLSLL (multiple and indexed vector)FEAT_SME2 && FEAT_SME_I16I64
10UMLALL (multiple and indexed vector)FEAT_SME2 && FEAT_SME_I16I64
11UMLSLL (multiple and indexed vector)FEAT_SME2 && FEAT_SME_I16I64

SME2 multi-vec indexed long FMA one source

The encodings in this section are decoded from SME2 Multi-vector - Indexed (One register).

313029282726252423222120191817161514131211109876543210
110000011000Zmi3hRv1i3lZnopSoff3
Decode fields Instruction Details Feature
opS
00FMLAL (multiple and indexed vector, FP16 to FP32)FEAT_SME2
01FMLSL (multiple and indexed vector)FEAT_SME2
10BFMLAL (multiple and indexed vector)FEAT_SME2
11BFMLSL (multiple and indexed vector)FEAT_SME2

SME2 multi-vec indexed long MLA one source

The encodings in this section are decoded from SME2 Multi-vector - Indexed (One register).

313029282726252423222120191817161514131211109876543210
110000011100Zmi3hRv1i3lZnUSoff3
Decode fields Instruction Details Feature
US
00SMLAL (multiple and indexed vector)FEAT_SME2
01SMLSL (multiple and indexed vector)FEAT_SME2
10UMLAL (multiple and indexed vector)FEAT_SME2
11UMLSL (multiple and indexed vector)FEAT_SME2

SME2 Multi-vector - Indexed (Two registers)

The encodings in this section are decoded from SME encodings.

313029282726252423222120191817161514131211109876543210
11000001op0010op1op2op3
Decode fields Instruction details Feature
op0op1op2op3
00 0x SME2 multi-vec indexed long long MLA two sources 32-bit-
00 1x SME2 multi-vec ternary indexed two registers 16-bit-
01 SME2 multi-vec ternary indexed two registers 32-bit-
10 00 0 SME2 multi-vec indexed long long MLA two sources 64-bit-
10 01 0 UNALLOCATED-
10 0x 1 00 FMLALL (multiple and indexed vector)Two ZA quad-vectorsFEAT_SME_F8F32
10 0x 1 != 00 UNALLOCATED-
10 1x 0 SME2 multi-vec indexed long FMA two sources-
10 1x 1 0x UNALLOCATED-
10 1x 1 1x FMLAL (multiple and indexed vector, FP8 to FP16)Two ZA double-vectorsFEAT_SME_F8F16
11 00 0 SME2 multi-vec ternary indexed two registers 64-bit-
11 01 0 SME2 multi-vec indexed FP8 two-way vertical dot product to single-precision two registers-
11 1x 0 SME2 multi-vec indexed long MLA two sources-
11 1 0x SME2 multi-vec indexed FP8 two-way dot product to FP16 two registers-
11 1 1x UNALLOCATED-

SME2 multi-vec indexed long long MLA two sources 32-bit

The encodings in this section are decoded from SME2 Multi-vector - Indexed (Two registers).

313029282726252423222120191817161514131211109876543210
110000010001Zm0Rv0i4hZnopUSi4lo1
Decode fields Instruction Details Feature
opUS
000SMLALL (multiple and indexed vector)FEAT_SME2
001SMLSLL (multiple and indexed vector)FEAT_SME2
010UMLALL (multiple and indexed vector)FEAT_SME2
011UMLSLL (multiple and indexed vector)FEAT_SME2
11UNALLOCATED-
100USMLALL (multiple and indexed vector)FEAT_SME2
110SUMLALL (multiple and indexed vector)FEAT_SME2

SME2 multi-vec ternary indexed two registers 16-bit

The encodings in this section are decoded from SME2 Multi-vector - Indexed (Two registers).

313029282726252423222120191817161514131211109876543210
110000010001Zm0Rv1i3hZnopSi3loff3
Decode fields Instruction Details Feature
opS
00FMLA (multiple and indexed vector)FEAT_SME_F16F16
01FMLS (multiple and indexed vector)FEAT_SME_F16F16
10BFMLA (multiple and indexed vector)FEAT_SME_B16B16
11BFMLS (multiple and indexed vector)FEAT_SME_B16B16

SME2 multi-vec ternary indexed two registers 32-bit

The encodings in this section are decoded from SME2 Multi-vector - Indexed (Two registers).

313029282726252423222120191817161514131211109876543210
110000010101Zm0Rvopi2Znopc2off3
Decode fields Instruction Details Feature
opopc2
0000FMLA (multiple and indexed vector)FEAT_SME2
0001FVDOT (FP16 to FP32)FEAT_SME2
0010FMLS (multiple and indexed vector)FEAT_SME2
0011BFVDOTFEAT_SME2
0100SVDOT (2-way)FEAT_SME2
0101UNALLOCATED-
0110UVDOT (2-way)FEAT_SME2
0111FDOT (4-way, multiple and indexed vector)FEAT_SME_F8F32
1000SDOT (2-way, multiple and indexed vector)FEAT_SME2
1001FDOT (2-way, multiple and indexed vector, FP16 to FP32)FEAT_SME2
1010UDOT (2-way, multiple and indexed vector)FEAT_SME2
1011BFDOT (multiple and indexed vector)FEAT_SME2
1100SDOT (4-way, multiple and indexed vector)FEAT_SME2
1101USDOT (4-way, multiple and indexed vector)FEAT_SME2
1110UDOT (4-way, multiple and indexed vector)FEAT_SME2
1111SUDOT (4-way, multiple and indexed vector)FEAT_SME2

SME2 multi-vec indexed long long MLA two sources 64-bit

The encodings in this section are decoded from SME2 Multi-vector - Indexed (Two registers).

313029282726252423222120191817161514131211109876543210
110000011001Zm0Rv00i3hZn0USi3lo1
Decode fields Instruction Details Feature
US
00SMLALL (multiple and indexed vector)FEAT_SME2 && FEAT_SME_I16I64
01SMLSLL (multiple and indexed vector)FEAT_SME2 && FEAT_SME_I16I64
10UMLALL (multiple and indexed vector)FEAT_SME2 && FEAT_SME_I16I64
11UMLSLL (multiple and indexed vector)FEAT_SME2 && FEAT_SME_I16I64

SME2 multi-vec indexed long FMA two sources

The encodings in this section are decoded from SME2 Multi-vector - Indexed (Two registers).

313029282726252423222120191817161514131211109876543210
110000011001Zm0Rv1i3hZn0opSi3loff2
Decode fields Instruction Details Feature
opS
00FMLAL (multiple and indexed vector, FP16 to FP32)FEAT_SME2
01FMLSL (multiple and indexed vector)FEAT_SME2
10BFMLAL (multiple and indexed vector)FEAT_SME2
11BFMLSL (multiple and indexed vector)FEAT_SME2

SME2 multi-vec ternary indexed two registers 64-bit

The encodings in this section are decoded from SME2 Multi-vector - Indexed (Two registers).

313029282726252423222120191817161514131211109876543210
110000011101Zm0Rv00i1Zn0opcoff3
Decode fields Instruction Details Feature
opc
00FMLA (multiple and indexed vector)FEAT_SME2 && FEAT_SME_F64F64
01SDOT (4-way, multiple and indexed vector)FEAT_SME2 && FEAT_SME_I16I64
10FMLS (multiple and indexed vector)FEAT_SME2 && FEAT_SME_F64F64
11UDOT (4-way, multiple and indexed vector)FEAT_SME2 && FEAT_SME_I16I64

SME2 multi-vec indexed FP8 two-way vertical dot product to single-precision two registers

The encodings in this section are decoded from SME2 Multi-vector - Indexed (Two registers).

313029282726252423222120191817161514131211109876543210
110000011101Zm0Rv01i2hZn0Ti2loff3
Decode fields Instruction Details Feature
T
0FVDOTBFEAT_SME_F8F32
1FVDOTTFEAT_SME_F8F32

SME2 multi-vec indexed long MLA two sources

The encodings in this section are decoded from SME2 Multi-vector - Indexed (Two registers).

313029282726252423222120191817161514131211109876543210
110000011101Zm0Rv1i3hZn0USi3loff2
Decode fields Instruction Details Feature
US
00SMLAL (multiple and indexed vector)FEAT_SME2
01SMLSL (multiple and indexed vector)FEAT_SME2
10UMLAL (multiple and indexed vector)FEAT_SME2
11UMLSL (multiple and indexed vector)FEAT_SME2

SME2 multi-vec indexed FP8 two-way dot product to FP16 two registers

The encodings in this section are decoded from SME2 Multi-vector - Indexed (Two registers).

313029282726252423222120191817161514131211109876543210
110000011101Zm0Rvopi3hZn10i3loff3
Decode fields Instruction Details Feature
op
0FDOT (2-way, multiple and indexed vector, FP8 to FP16)FEAT_SME_F8F16
1FVDOT (FP8 to FP16)FEAT_SME_F8F16

SME2 Multi-vector - Indexed (Four registers)

The encodings in this section are decoded from SME encodings.

313029282726252423222120191817161514131211109876543210
11000001op0011op1op2op3
Decode fields Instruction details Feature
op0op1op2op3
00 0x 0xx SME2 multi-vec indexed long long MLA four sources 32-bit-
00 0x 100 0 FMLALL (multiple and indexed vector)Four ZA quad-vectorsFEAT_SME_F8F32
00 0x 100 1 UNALLOCATED-
00 1x 0xx SME2 multi-vec ternary indexed four registers 16-bit-
00 1x 100 FDOT (2-way, multiple and indexed vector, FP8 to FP16)Four ZA single-vectorsFEAT_SME_F8F16
00 101 UNALLOCATED-
00 11x UNALLOCATED-
01 0xx SME2 multi-vec ternary indexed four registers 32-bit-
10 00 00x SME2 multi-vec indexed long long MLA four sources 64-bit-
10 01 00x UNALLOCATED-
10 0x 01x UNALLOCATED-
10 1x 00x SME2 multi-vec indexed long FMA four sources-
10 1x 010 FMLAL (multiple and indexed vector, FP8 to FP16)Four ZA double-vectorsFEAT_SME_F8F16
10 1x 011 UNALLOCATED-
11 0x 00x SME2 multi-vec ternary indexed four registers 64-bit-
11 1x 00x SME2 multi-vec indexed long MLA four sources-
11 01x UNALLOCATED-
!= 00 1xx UNALLOCATED-

SME2 multi-vec indexed long long MLA four sources 32-bit

The encodings in this section are decoded from SME2 Multi-vector - Indexed (Four registers).

313029282726252423222120191817161514131211109876543210
110000010001Zm1Rv0i4hZn0opUSi4lo1
Decode fields Instruction Details Feature
opUS
000SMLALL (multiple and indexed vector)FEAT_SME2
001SMLSLL (multiple and indexed vector)FEAT_SME2
010UMLALL (multiple and indexed vector)FEAT_SME2
011UMLSLL (multiple and indexed vector)FEAT_SME2
11UNALLOCATED-
100USMLALL (multiple and indexed vector)FEAT_SME2
110SUMLALL (multiple and indexed vector)FEAT_SME2

SME2 multi-vec ternary indexed four registers 16-bit

The encodings in this section are decoded from SME2 Multi-vector - Indexed (Four registers).

313029282726252423222120191817161514131211109876543210
110000010001Zm1Rv1i3hZn0opSi3loff3
Decode fields Instruction Details Feature
opS
00FMLA (multiple and indexed vector)FEAT_SME_F16F16
01FMLS (multiple and indexed vector)FEAT_SME_F16F16
10BFMLA (multiple and indexed vector)FEAT_SME_B16B16
11BFMLS (multiple and indexed vector)FEAT_SME_B16B16

SME2 multi-vec ternary indexed four registers 32-bit

The encodings in this section are decoded from SME2 Multi-vector - Indexed (Four registers).

313029282726252423222120191817161514131211109876543210
110000010101Zm1Rvopi2Zn0opc2off3
Decode fields Instruction Details Feature
opopc2
0000FMLA (multiple and indexed vector)FEAT_SME2
0001FDOT (4-way, multiple and indexed vector)FEAT_SME_F8F32
0010FMLS (multiple and indexed vector)FEAT_SME2
0011UNALLOCATED-
0100SVDOT (4-way)FEAT_SME2
0101USVDOTFEAT_SME2
0110UVDOT (4-way)FEAT_SME2
0111SUVDOTFEAT_SME2
1000SDOT (2-way, multiple and indexed vector)FEAT_SME2
1001FDOT (2-way, multiple and indexed vector, FP16 to FP32)FEAT_SME2
1010UDOT (2-way, multiple and indexed vector)FEAT_SME2
1011BFDOT (multiple and indexed vector)FEAT_SME2
1100SDOT (4-way, multiple and indexed vector)FEAT_SME2
1101USDOT (4-way, multiple and indexed vector)FEAT_SME2
1110UDOT (4-way, multiple and indexed vector)FEAT_SME2
1111SUDOT (4-way, multiple and indexed vector)FEAT_SME2

SME2 multi-vec indexed long long MLA four sources 64-bit

The encodings in this section are decoded from SME2 Multi-vector - Indexed (Four registers).

313029282726252423222120191817161514131211109876543210
110000011001Zm1Rv00i3hZn00USi3lo1
Decode fields Instruction Details Feature
US
00SMLALL (multiple and indexed vector)FEAT_SME2 && FEAT_SME_I16I64
01SMLSLL (multiple and indexed vector)FEAT_SME2 && FEAT_SME_I16I64
10UMLALL (multiple and indexed vector)FEAT_SME2 && FEAT_SME_I16I64
11UMLSLL (multiple and indexed vector)FEAT_SME2 && FEAT_SME_I16I64

SME2 multi-vec indexed long FMA four sources

The encodings in this section are decoded from SME2 Multi-vector - Indexed (Four registers).

313029282726252423222120191817161514131211109876543210
110000011001Zm1Rv1i3hZn00opSi3loff2
Decode fields Instruction Details Feature
opS
00FMLAL (multiple and indexed vector, FP16 to FP32)FEAT_SME2
01FMLSL (multiple and indexed vector)FEAT_SME2
10BFMLAL (multiple and indexed vector)FEAT_SME2
11BFMLSL (multiple and indexed vector)FEAT_SME2

SME2 multi-vec ternary indexed four registers 64-bit

The encodings in this section are decoded from SME2 Multi-vector - Indexed (Four registers).

313029282726252423222120191817161514131211109876543210
110000011101Zm1Rv0opi1Zn00opc2off3
Decode fields Instruction Details Feature
opopc2
000FMLA (multiple and indexed vector)FEAT_SME2 && FEAT_SME_F64F64
001SDOT (4-way, multiple and indexed vector)FEAT_SME2 && FEAT_SME_I16I64
010FMLS (multiple and indexed vector)FEAT_SME2 && FEAT_SME_F64F64
011UDOT (4-way, multiple and indexed vector)FEAT_SME2 && FEAT_SME_I16I64
1x0UNALLOCATED-
101SVDOT (4-way)FEAT_SME2 && FEAT_SME_I16I64
111UVDOT (4-way)FEAT_SME2 && FEAT_SME_I16I64

SME2 multi-vec indexed long MLA four sources

The encodings in this section are decoded from SME2 Multi-vector - Indexed (Four registers).

313029282726252423222120191817161514131211109876543210
110000011101Zm1Rv1i3hZn00USi3loff2
Decode fields Instruction Details Feature
US
00SMLAL (multiple and indexed vector)FEAT_SME2
01SMLSL (multiple and indexed vector)FEAT_SME2
10UMLAL (multiple and indexed vector)FEAT_SME2
11UMLSL (multiple and indexed vector)FEAT_SME2

SME2 Multi-vector - Multiple and Single SVE Destructive (Two registers)

The encodings in this section are decoded from SME encodings.

313029282726252423222120191817161514131211109876543210
110000011010100op0op1op2
Decode fields Instruction details
op0op1op2
0 00 00x SME2 single-multi int min/max two registers
0 00 101 UNALLOCATED
0 01 00x SME2 single-multi FP min/max two registers
0 01 100 SME2 multiple and single vector FSCALE two registers
0 01 101 UNALLOCATED
0 0x x1x UNALLOCATED
0 10 SME2 single-multi shift two registers
0 11 000 SME2 single-multi add two registers
0 11 001!= 000UNALLOCATED
0 11 10x UNALLOCATED
0 != 1x 101 UNALLOCATED
0 != 10 x1x UNALLOCATED
1 00 000 SME2 single-multi signed saturating doubling multiply high two registers
1 00 xx1 UNALLOCATED
1 00 != x00x10UNALLOCATED
1 != 00 UNALLOCATED
00 100 UNALLOCATED

SME2 single-multi int min/max two registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple and Single SVE Destructive (Two registers).

313029282726252423222120191817161514131211109876543210
11000001size10Zm1010000000opZdnU
Decode fields Instruction Details Feature
opU
00SMAX (multiple and single vector)FEAT_SME2
01UMAX (multiple and single vector)FEAT_SME2
10SMIN (multiple and single vector)FEAT_SME2
11UMIN (multiple and single vector)FEAT_SME2

SME2 single-multi FP min/max two registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple and Single SVE Destructive (Two registers).

313029282726252423222120191817161514131211109876543210
11000001size10Zm1010000100opZdno2
Decode fields Instruction Details Feature
sizeopo2
0000BFMAX (multiple and single vector)FEAT_SME2 && FEAT_SVE_B16B16
0001BFMIN (multiple and single vector)FEAT_SME2 && FEAT_SVE_B16B16
0010BFMAXNM (multiple and single vector)FEAT_SME2 && FEAT_SVE_B16B16
0011BFMINNM (multiple and single vector)FEAT_SME2 && FEAT_SVE_B16B16
!= 0000FMAX (multiple and single vector)FEAT_SME2
!= 0001FMIN (multiple and single vector)FEAT_SME2
!= 0010FMAXNM (multiple and single vector)FEAT_SME2
!= 0011FMINNM (multiple and single vector)FEAT_SME2

SME2 multiple and single vector FSCALE two registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple and Single SVE Destructive (Two registers).

313029282726252423222120191817161514131211109876543210
11000001size10Zm10100001100Zdnop
Decode fields Instruction Details Feature
sizeop
1UNALLOCATED-
000BFSCALE (multiple and single vector)FEAT_SME2 && FEAT_SVE_BFSCALE
!= 000FSCALE (multiple and single vector)FEAT_SME2 && FEAT_FP8

SME2 single-multi shift two registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple and Single SVE Destructive (Two registers).

313029282726252423222120191817161514131211109876543210
11000001size10Zm10100010opcZdnU
Decode fields Instruction Details Feature
opcU
0010SRSHL (multiple and single vector)FEAT_SME2
0011URSHL (multiple and single vector)FEAT_SME2
!= 001UNALLOCATED-

SME2 single-multi add two registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple and Single SVE Destructive (Two registers).

313029282726252423222120191817161514131211109876543210
11000001size10Zm10100011000Zdnop
Decode fields Instruction Details Feature
op
0ADD (to vector, multiple vectors)FEAT_SME2
1UNALLOCATED-

SME2 single-multi signed saturating doubling multiply high two registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple and Single SVE Destructive (Two registers).

313029282726252423222120191817161514131211109876543210
11000001size10Zm10100100000Zdnop
Decode fields Instruction Details Feature
op
0SQDMULH (multiple and single vector)FEAT_SME2
1UNALLOCATED-

SME2 Multi-vector - Multiple and Single SVE Destructive (Four registers)

The encodings in this section are decoded from SME encodings.

313029282726252423222120191817161514131211109876543210
110000011010101op0op1op20
Decode fields Instruction details
op0op1op2
0 00 00x SME2 single-multi int min/max four registers
0 00 101 UNALLOCATED
0 01 00x SME2 single-multi FP min/max four registers
0 01 100 SME2 multiple and single vector FSCALE four registers
0 01 101 UNALLOCATED
0 0x x1x UNALLOCATED
0 10 SME2 single-multi shift four registers
0 11 000 SME2 single-multi add four registers
0 11 001!= 000UNALLOCATED
0 11 10x UNALLOCATED
0 != 1x 101 UNALLOCATED
0 != 10 x1x UNALLOCATED
1 00 000 SME2 single-multi signed saturating doubling multiply high four registers
1 00 xx1 UNALLOCATED
1 00 != x00x10UNALLOCATED
1 != 00 UNALLOCATED
00 100 UNALLOCATED

SME2 single-multi int min/max four registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple and Single SVE Destructive (Four registers).

313029282726252423222120191817161514131211109876543210
11000001size10Zm1010100000opZdn0U
Decode fields Instruction Details Feature
opU
00SMAX (multiple and single vector)FEAT_SME2
01UMAX (multiple and single vector)FEAT_SME2
10SMIN (multiple and single vector)FEAT_SME2
11UMIN (multiple and single vector)FEAT_SME2

SME2 single-multi FP min/max four registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple and Single SVE Destructive (Four registers).

313029282726252423222120191817161514131211109876543210
11000001size10Zm1010100100opZdn0o2
Decode fields Instruction Details Feature
sizeopo2
0000BFMAX (multiple and single vector)FEAT_SME2 && FEAT_SVE_B16B16
0001BFMIN (multiple and single vector)FEAT_SME2 && FEAT_SVE_B16B16
0010BFMAXNM (multiple and single vector)FEAT_SME2 && FEAT_SVE_B16B16
0011BFMINNM (multiple and single vector)FEAT_SME2 && FEAT_SVE_B16B16
!= 0000FMAX (multiple and single vector)FEAT_SME2
!= 0001FMIN (multiple and single vector)FEAT_SME2
!= 0010FMAXNM (multiple and single vector)FEAT_SME2
!= 0011FMINNM (multiple and single vector)FEAT_SME2

SME2 multiple and single vector FSCALE four registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple and Single SVE Destructive (Four registers).

313029282726252423222120191817161514131211109876543210
11000001size10Zm10101001100Zdn0op
Decode fields Instruction Details Feature
sizeop
1UNALLOCATED-
000BFSCALE (multiple and single vector)FEAT_SME2 && FEAT_SVE_BFSCALE
!= 000FSCALE (multiple and single vector)FEAT_SME2 && FEAT_FP8

SME2 single-multi shift four registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple and Single SVE Destructive (Four registers).

313029282726252423222120191817161514131211109876543210
11000001size10Zm10101010opcZdn0U
Decode fields Instruction Details Feature
opcU
0010SRSHL (multiple and single vector)FEAT_SME2
0011URSHL (multiple and single vector)FEAT_SME2
!= 001UNALLOCATED-

SME2 single-multi add four registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple and Single SVE Destructive (Four registers).

313029282726252423222120191817161514131211109876543210
11000001size10Zm10101011000Zdn0op
Decode fields Instruction Details Feature
op
0ADD (to vector, multiple vectors)FEAT_SME2
1UNALLOCATED-

SME2 single-multi signed saturating doubling multiply high four registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple and Single SVE Destructive (Four registers).

313029282726252423222120191817161514131211109876543210
11000001size10Zm10101100000Zdn0op
Decode fields Instruction Details Feature
op
0SQDMULH (multiple and single vector)FEAT_SME2
1UNALLOCATED-

SME2 Multi-vector - Multiple Vectors SVE Destructive (Four registers)

The encodings in this section are decoded from SME encodings.

313029282726252423222120191817161514131211109876543210
11000001100101110op00
Decode fields Instruction details
op0
000 SME2 multiple vectors int min/max four registers
001 UNALLOCATED
010 SME2 multiple vectors FP min/max four registers
011 SME2 multiple vectors FSCALE four registers
10x SME2 multiple vectors shift four registers
11x UNALLOCATED

SME2 multiple vectors int min/max four registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple Vectors SVE Destructive (Four registers).

313029282726252423222120191817161514131211109876543210
11000001size1Zm00101110000opcZdn0U
Decode fields Instruction Details Feature
opcU
000SMAX (multiple vectors)FEAT_SME2
001UMAX (multiple vectors)FEAT_SME2
010SMIN (multiple vectors)FEAT_SME2
011UMIN (multiple vectors)FEAT_SME2
1xUNALLOCATED-

SME2 multiple vectors FP min/max four registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple Vectors SVE Destructive (Four registers).

313029282726252423222120191817161514131211109876543210
11000001size1Zm00101110010opcZdn0o2
Decode fields Instruction Details Feature
sizeopco2
100FAMAXFEAT_SME2 && FEAT_FAMINMAX
101FAMINFEAT_SME2 && FEAT_FAMINMAX
11UNALLOCATED-
00000BFMAX (multiple vectors)FEAT_SME2 && FEAT_SVE_B16B16
00001BFMIN (multiple vectors)FEAT_SME2 && FEAT_SVE_B16B16
00010BFMAXNM (multiple vectors)FEAT_SME2 && FEAT_SVE_B16B16
00011BFMINNM (multiple vectors)FEAT_SME2 && FEAT_SVE_B16B16
!= 00000FMAX (multiple vectors)FEAT_SME2
!= 00001FMIN (multiple vectors)FEAT_SME2
!= 00010FMAXNM (multiple vectors)FEAT_SME2
!= 00011FMINNM (multiple vectors)FEAT_SME2

SME2 multiple vectors FSCALE four registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple Vectors SVE Destructive (Four registers).

313029282726252423222120191817161514131211109876543210
11000001size1Zm00101110011opcZdn0o2
Decode fields Instruction Details Feature
sizeopco2
001UNALLOCATED-
!= 00UNALLOCATED-
00000BFSCALE (multiple vectors)FEAT_SME2 && FEAT_SVE_BFSCALE
!= 00000FSCALE (multiple vectors)FEAT_SME2 && FEAT_FP8

SME2 multiple vectors shift four registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple Vectors SVE Destructive (Four registers).

313029282726252423222120191817161514131211109876543210
11000001size1Zm0010111010opcZdn0U
Decode fields Instruction Details Feature
opcU
0010SRSHL (multiple vectors)FEAT_SME2
0011URSHL (multiple vectors)FEAT_SME2
!= 001UNALLOCATED-

SME2 Multi-vector - Multiple Vectors SVE Saturating Multiply (Four registers)

The encodings in this section are decoded from SME encodings.

313029282726252423222120191817161514131211109876543210
11000001100101111op00
Decode fields Instruction details
op0
00000 SME2 multi-vector signed saturating doubling multiply high four registers
!= 00000 UNALLOCATED

SME2 multi-vector signed saturating doubling multiply high four registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple Vectors SVE Saturating Multiply (Four registers).

313029282726252423222120191817161514131211109876543210
11000001size1Zm0010111100000Zdn0op
Decode fields Instruction Details Feature
op
0SQDMULH (multiple vectors)FEAT_SME2
1UNALLOCATED-

SME2 Multi-vector - Multiple Vectors SVE Destructive (Two registers)

The encodings in this section are decoded from SME encodings.

313029282726252423222120191817161514131211109876543210
1100000110101100op0
Decode fields Instruction details
op0
000 SME2 multiple vectors int min/max two registers
001 UNALLOCATED
010 SME2 multiple vectors FP min/max two registers
011 SME2 multiple vectors FSCALE two registers
10x SME2 multiple vectors shift two registers
11x UNALLOCATED

SME2 multiple vectors int min/max two registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple Vectors SVE Destructive (Two registers).

313029282726252423222120191817161514131211109876543210
11000001size1Zm0101100000opcZdnU
Decode fields Instruction Details Feature
opcU
000SMAX (multiple vectors)FEAT_SME2
001UMAX (multiple vectors)FEAT_SME2
010SMIN (multiple vectors)FEAT_SME2
011UMIN (multiple vectors)FEAT_SME2
1xUNALLOCATED-

SME2 multiple vectors FP min/max two registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple Vectors SVE Destructive (Two registers).

313029282726252423222120191817161514131211109876543210
11000001size1Zm0101100010opcZdno2
Decode fields Instruction Details Feature
sizeopco2
100FAMAXFEAT_SME2 && FEAT_FAMINMAX
101FAMINFEAT_SME2 && FEAT_FAMINMAX
11UNALLOCATED-
00000BFMAX (multiple vectors)FEAT_SME2 && FEAT_SVE_B16B16
00001BFMIN (multiple vectors)FEAT_SME2 && FEAT_SVE_B16B16
00010BFMAXNM (multiple vectors)FEAT_SME2 && FEAT_SVE_B16B16
00011BFMINNM (multiple vectors)FEAT_SME2 && FEAT_SVE_B16B16
!= 00000FMAX (multiple vectors)FEAT_SME2
!= 00001FMIN (multiple vectors)FEAT_SME2
!= 00010FMAXNM (multiple vectors)FEAT_SME2
!= 00011FMINNM (multiple vectors)FEAT_SME2

SME2 multiple vectors FSCALE two registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple Vectors SVE Destructive (Two registers).

313029282726252423222120191817161514131211109876543210
11000001size1Zm0101100011opcZdno2
Decode fields Instruction Details Feature
sizeopco2
001UNALLOCATED-
!= 00UNALLOCATED-
00000BFSCALE (multiple vectors)FEAT_SME2 && FEAT_SVE_BFSCALE
!= 00000FSCALE (multiple vectors)FEAT_SME2 && FEAT_FP8

SME2 multiple vectors shift two registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple Vectors SVE Destructive (Two registers).

313029282726252423222120191817161514131211109876543210
11000001size1Zm010110010opcZdnU
Decode fields Instruction Details Feature
opcU
0010SRSHL (multiple vectors)FEAT_SME2
0011URSHL (multiple vectors)FEAT_SME2
!= 001UNALLOCATED-

SME2 Multi-vector - Multiple Vectors SVE Saturating Multiply (Two registers)

The encodings in this section are decoded from SME encodings.

313029282726252423222120191817161514131211109876543210
1100000110101101op0
Decode fields Instruction details
op0
00000 SME2 multi-vector signed saturating doubling multiply high two registers
!= 00000 UNALLOCATED

SME2 multi-vector signed saturating doubling multiply high two registers

The encodings in this section are decoded from SME2 Multi-vector - Multiple Vectors SVE Saturating Multiply (Two registers).

313029282726252423222120191817161514131211109876543210
11000001size1Zm010110100000Zdnop
Decode fields Instruction Details Feature
op
0SQDMULH (multiple vectors)FEAT_SME2
1UNALLOCATED-

SME2 Multi-vector - SVE Select

The encodings in this section are decoded from SME encodings.

313029282726252423222120191817161514131211109876543210
110000011op0100op1op2
Decode fields Instruction details Feature
op0op1op2
01 00 00 SELFour registersFEAT_SME2
01 00 10 UNALLOCATED-
01 10 x0 UNALLOCATED-
11 x0 x0 UNALLOCATED-
x0 x0 x0 SELTwo registersFEAT_SME2
x0 x1 UNALLOCATED-
x1 UNALLOCATED-

SME2 Multi-vector - SVE Constructive Binary

The encodings in this section are decoded from SME encodings.

313029282726252423222120191817161514131211109876543210
11000001op01110op1op2
Decode fields Instruction details
op0op1op2
00 101 SME2 multi-vec quadwords ZIP two registers
01 101 UNALLOCATED
10 101 UNALLOCATED
11 101 SME2 multi-vec saturating shift right narrow two registers
000 SME2 multi-vec FCLAMP two registers
001 SME2 multi-vec CLAMP two registers
010 0 SME2 multi-vec FCLAMP four registers
011 0 SME2 multi-vec CLAMP four registers
01x 1 UNALLOCATED
100 SME2 multi-vec ZIP two registers
11x SME2 multi-vec saturating shift right narrow four registers

SME2 multi-vec quadwords ZIP two registers

The encodings in this section are decoded from SME2 Multi-vector - SVE Constructive Binary.

313029282726252423222120191817161514131211109876543210
11000001001Zm110101ZnZdop
Decode fields Instruction Details Feature
op
0ZIP (two registers)FEAT_SME2
1UZP (two registers)FEAT_SME2

SME2 multi-vec saturating shift right narrow two registers

The encodings in this section are decoded from SME2 Multi-vector - SVE Constructive Binary.

313029282726252423222120191817161514131211109876543210
11000001111opimm4110101ZnUZd
Decode fields Instruction Details Feature
opU
00SQRSHR (two registers)FEAT_SME2
01UQRSHR (two registers)FEAT_SME2
10SQRSHRU (two registers)FEAT_SME2
11UNALLOCATED-

SME2 multi-vec FCLAMP two registers

The encodings in this section are decoded from SME2 Multi-vector - SVE Constructive Binary.

313029282726252423222120191817161514131211109876543210
11000001size1Zm110000ZnZdop
Decode fields Instruction Details Feature
sizeop
1UNALLOCATED-
000BFCLAMPFEAT_SME2 && FEAT_SVE_B16B16
!= 000FCLAMPFEAT_SME2

SME2 multi-vec CLAMP two registers

The encodings in this section are decoded from SME2 Multi-vector - SVE Constructive Binary.

313029282726252423222120191817161514131211109876543210
11000001size1Zm110001ZnZdU
Decode fields Instruction Details Feature
U
0SCLAMPFEAT_SME2
1UCLAMPFEAT_SME2

SME2 multi-vec FCLAMP four registers

The encodings in this section are decoded from SME2 Multi-vector - SVE Constructive Binary.

313029282726252423222120191817161514131211109876543210
11000001size1Zm110010ZnZd0op
Decode fields Instruction Details Feature
sizeop
1UNALLOCATED-
000BFCLAMPFEAT_SME2 && FEAT_SVE_B16B16
!= 000FCLAMPFEAT_SME2

SME2 multi-vec CLAMP four registers

The encodings in this section are decoded from SME2 Multi-vector - SVE Constructive Binary.

313029282726252423222120191817161514131211109876543210
11000001size1Zm110011ZnZd0U
Decode fields Instruction Details Feature
U
0SCLAMPFEAT_SME2
1UCLAMPFEAT_SME2

SME2 multi-vec ZIP two registers

The encodings in this section are decoded from SME2 Multi-vector - SVE Constructive Binary.

313029282726252423222120191817161514131211109876543210
11000001size1Zm110100ZnZdop
Decode fields Instruction Details Feature
op
0ZIP (two registers)FEAT_SME2
1UZP (two registers)FEAT_SME2

SME2 multi-vec saturating shift right narrow four registers

The encodings in this section are decoded from SME2 Multi-vector - SVE Constructive Binary.

313029282726252423222120191817161514131211109876543210
11000001tsize1imm511011NZnopUZd
Decode fields Instruction Details Feature
NopU
11UNALLOCATED-
000SQRSHR (four registers)FEAT_SME2
001UQRSHR (four registers)FEAT_SME2
010SQRSHRU (four registers)FEAT_SME2
100SQRSHRNFEAT_SME2
101UQRSHRNFEAT_SME2
110SQRSHRUNFEAT_SME2

SME2 Multi-vector - SVE Constructive Unary

The encodings in this section are decoded from SME encodings.

313029282726252423222120191817161514131211109876543210
11000001op01op1op2111000op3op4
Decode fields Instruction details
op0op1op2op3op4
00 000 01 x0 SME2 multi-vec FP to int convert two registers
00 000 10 x0 SME2 multi-vec int to FP two registers
00 001 11 UNALLOCATED
00 100 01 0x 00 SME2 multi-vec FP to int convert four registers
00 100 10 0x 00 SME2 multi-vec int to FP four registers
00 101 00 0x SME2 multi-vec FP8 down convert four registers
00 101 11 00 x0 SME2 multi-vec quadwords ZIP four registers
01 000 01 x0 UNALLOCATED
01 001 11 UNALLOCATED
01 101 00 0x 1x UNALLOCATED
01 10x 00 0x 0x UNALLOCATED
0x 000 00 SME2 multi-vec FP down convert two registers
0x 000 11 SME2 multi-vec int down convert two registers
0x 001 00 x0 SME2 multi-vec FP8 down convert two registers
0x 001 00 x1 UNALLOCATED
10 000 00 SME2 multi-vec convert two registers
10 001 00 1x UNALLOCATED
10 x01 00 0x UNALLOCATED
11 00x 00 UNALLOCATED
11 101 00 0x 1x UNALLOCATED
11 10x 00 0x 0x UNALLOCATED
1x 000 11 x1 UNALLOCATED
1x 000 x1 x0 UNALLOCATED
1x 001 11 UNALLOCATED
x0 100 00 0x 0x UNALLOCATED
000 01 x1 UNALLOCATED
000 10 x1 UNALLOCATED
001 01 SME2 multi-vec unpack two registers
001 10 SME2 multi-vec FP8 up convert two registers
01x x0 x0 SME2 multi-vec FRINT two registers
100 01 0x 01 UNALLOCATED
100 01 1x UNALLOCATED
100 10 0x 01 UNALLOCATED
100 11 SME2 multi-vec int down convert four registers
100 != 11 0x 1x UNALLOCATED
101 01 x0 0x SME2 multi-vec unpack four registers
101 01 x0 1x UNALLOCATED
101 01 x1 UNALLOCATED
101 10 00 x0 SME2 multi-vec ZIP four registers
101 11 1x UNALLOCATED
101 1x 00 x1 UNALLOCATED
101 1x 01 UNALLOCATED
10x x0 1x UNALLOCATED
11x 00 00 SME2 multi-vec FRINT four registers
11x 00 10 UNALLOCATED
11x 10 x0 UNALLOCATED
x1x x0 x1 UNALLOCATED
x1x x1 UNALLOCATED
!= x0 101 00 0x 1x UNALLOCATED
!= x0 10x 00 0x 0x UNALLOCATED
!= 00 000 10 x0 UNALLOCATED
!= 00 100 01 0x 00 UNALLOCATED
!= 00 100 10 0x 00 UNALLOCATED
!= 00 101 11 00 x0 UNALLOCATED
!= 01 001 11 UNALLOCATED

SME2 multi-vec FP to int convert two registers

The encodings in this section are decoded from SME2 Multi-vector - SVE Constructive Unary.

313029282726252423222120191817161514131211109876543210
1100000100100001111000ZnUZd0
Decode fields Instruction Details Feature
U
0FCVTZSFEAT_SME2
1FCVTZUFEAT_SME2

SME2 multi-vec int to FP two registers

The encodings in this section are decoded from SME2 Multi-vector - SVE Constructive Unary.

313029282726252423222120191817161514131211109876543210
1100000100100010111000ZnUZd0
Decode fields Instruction Details Feature
U
0SCVTFFEAT_SME2
1UCVTFFEAT_SME2

SME2 multi-vec FP to int convert four registers

The encodings in this section are decoded from SME2 Multi-vector - SVE Constructive Unary.

313029282726252423222120191817161514131211109876543210
1100000100110001111000Zn0UZd00
Decode fields Instruction Details Feature
U
0FCVTZSFEAT_SME2
1FCVTZUFEAT_SME2

SME2 multi-vec int to FP four registers

The encodings in this section are decoded from SME2 Multi-vector - SVE Constructive Unary.

313029282726252423222120191817161514131211109876543210
1100000100110010111000Zn0UZd00
Decode fields Instruction Details Feature
U
0SCVTFFEAT_SME2
1UCVTFFEAT_SME2

SME2 multi-vec FP8 down convert four registers

The encodings in this section are decoded from SME2 Multi-vector - SVE Constructive Unary.

313029282726252423222120191817161514131211109876543210
1100000100110100111000Zn0NZd
Decode fields Instruction Details Feature
N
0FCVT (narrowing, FP32 to FP8)FEAT_SME2 && FEAT_FP8
1FCVTN (FP32 to FP8)FEAT_SME2 && FEAT_FP8

SME2 multi-vec quadwords ZIP four registers

The encodings in this section are decoded from SME2 Multi-vector - SVE Constructive Unary.

313029282726252423222120191817161514131211109876543210
1100000100110111111000Zn00Zdop0
Decode fields Instruction Details Feature
op
0ZIP (four registers)FEAT_SME2
1UZP (four registers)FEAT_SME2

SME2 multi-vec FP down convert two registers

The encodings in this section are decoded from SME2 Multi-vector - SVE Constructive Unary.

313029282726252423222120191817161514131211109876543210
110000010op100000111000ZnNZd
Decode fields Instruction Details Feature
opN
00FCVT (narrowing, FP32 to FP16)FEAT_SME2
01FCVTN (FP32 to FP16)FEAT_SME2
10BFCVT (single-precision to BFloat16)FEAT_SME2
11BFCVTNFEAT_SME2

SME2 multi-vec int down convert two registers

The encodings in this section are decoded from SME2 Multi-vector - SVE Constructive Unary.

313029282726252423222120191817161514131211109876543210
110000010op100011111000ZnUZd
Decode fields Instruction Details Feature
opU
00SQCVT (two registers)FEAT_SME2
01UQCVT (two registers)FEAT_SME2
10SQCVTU (two registers)FEAT_SME2
11UNALLOCATED-

SME2 multi-vec FP8 down convert two registers

The encodings in this section are decoded from SME2 Multi-vector - SVE Constructive Unary.

313029282726252423222120191817161514131211109876543210
110000010op100100111000Zn0Zd
Decode fields Instruction Details Feature
op
0FCVT (narrowing, FP16 to FP8)FEAT_SME2 && FEAT_FP8
1BFCVT (BFloat16 to 8-bit floating-point)FEAT_SME2 && FEAT_FP8

SME2 multi-vec convert two registers

The encodings in this section are decoded from SME2 Multi-vector - SVE Constructive Unary.

313029282726252423222120191817161514131211109876543210
1100000110100000111000ZnZdL
Decode fields Instruction Details Feature
L
0FCVT (widening)FEAT_SME_F16F16
1FCVTLFEAT_SME_F16F16

SME2 multi-vec unpack two registers

The encodings in this section are decoded from SME2 Multi-vector - SVE Constructive Unary.

313029282726252423222120191817161514131211109876543210
11000001size100101111000ZnZdU
Decode fields Instruction Details Feature
U
0SUNPKFEAT_SME2
1UUNPKFEAT_SME2

SME2 multi-vec FP8 up convert two registers

The encodings in this section are decoded from SME2 Multi-vector - SVE Constructive Unary.

313029282726252423222120191817161514131211109876543210
11000001opc100110111000ZnZdL
Decode fields Instruction Details Feature
opcL
000F1CVT, F2CVTF1CVTFEAT_SME2 && FEAT_FP8
001F1CVTL, F2CVTLF1CVTLFEAT_SME2 && FEAT_FP8
010BF1CVT, BF2CVTBF1CVTFEAT_SME2 && FEAT_FP8
011BF1CVTL, BF2CVTLBF1CVTLFEAT_SME2 && FEAT_FP8
100F1CVT, F2CVTF2CVTFEAT_SME2 && FEAT_FP8
101F1CVTL, F2CVTLF2CVTLFEAT_SME2 && FEAT_FP8
110BF1CVT, BF2CVTBF2CVTFEAT_SME2 && FEAT_FP8
111BF1CVTL, BF2CVTLBF2CVTLFEAT_SME2 && FEAT_FP8

SME2 multi-vec FRINT two registers

The encodings in this section are decoded from SME2 Multi-vector - SVE Constructive Unary.

313029282726252423222120191817161514131211109876543210
11000001size101opc111000Zn0Zd0
Decode fields Instruction Details Feature
sizeopc
10000FRINTNFEAT_SME2
10001FRINTPFEAT_SME2
10010FRINTMFEAT_SME2
10011UNALLOCATED-
10100FRINTAFEAT_SME2
10101UNALLOCATED-
1011xUNALLOCATED-
!= 10UNALLOCATED-

SME2 multi-vec int down convert four registers

The encodings in this section are decoded from SME2 Multi-vector - SVE Constructive Unary.

313029282726252423222120191817161514131211109876543210
11000001szop110011111000ZnNUZd
Decode fields Instruction Details Feature
opNU
000SQCVT (four registers)FEAT_SME2
001UQCVT (four registers)FEAT_SME2
010SQCVTNFEAT_SME2
011UQCVTNFEAT_SME2
11UNALLOCATED-
100SQCVTU (four registers)FEAT_SME2
110SQCVTUNFEAT_SME2

SME2 multi-vec unpack four registers

The encodings in this section are decoded from SME2 Multi-vector - SVE Constructive Unary.

313029282726252423222120191817161514131211109876543210
11000001size110101111000Zn0Zd0U
Decode fields Instruction Details Feature
U
0SUNPKFEAT_SME2
1UUNPKFEAT_SME2

SME2 multi-vec ZIP four registers

The encodings in this section are decoded from SME2 Multi-vector - SVE Constructive Unary.

313029282726252423222120191817161514131211109876543210
11000001size110110111000Zn00Zdop0
Decode fields Instruction Details Feature
op
0ZIP (four registers)FEAT_SME2
1UZP (four registers)FEAT_SME2

SME2 multi-vec FRINT four registers

The encodings in this section are decoded from SME2 Multi-vector - SVE Constructive Unary.

313029282726252423222120191817161514131211109876543210
11000001size111opc111000Zn00Zd00
Decode fields Instruction Details Feature
sizeopc
10000FRINTNFEAT_SME2
10001FRINTPFEAT_SME2
10010FRINTMFEAT_SME2
10011UNALLOCATED-
10100FRINTAFEAT_SME2
10101UNALLOCATED-
1011xUNALLOCATED-
!= 10UNALLOCATED-

SME2 Multi-vector - FP Multiply

The encodings in this section are decoded from SME encodings.

313029282726252423222120191817161514131211109876543210
110000011op0111001op10op20
Decode fields Instruction details
op0op1op2
01 0 0 SME2 multi-vec FP multiply (four registers)
01 0 1 UNALLOCATED
01 1 UNALLOCATED
11 UNALLOCATED
x0 SME2 multi-vec FP multiply (two registers)

SME2 multi-vec FP multiply (four registers)

The encodings in this section are decoded from SME2 Multi-vector - FP Multiply.

313029282726252423222120191817161514131211109876543210
11000001size1Zm01111001Zn00Zd00
Decode fields Instruction Details Feature
size
00BFMUL (multiple vectors)FEAT_SME2 && FEAT_SVE_BFSCALE
!= 00FMUL (multiple vectors)FEAT_SME2p2

SME2 multi-vec FP multiply (two registers)

The encodings in this section are decoded from SME2 Multi-vector - FP Multiply.

313029282726252423222120191817161514131211109876543210
11000001size1Zm0111001Zn0Zd0
Decode fields Instruction Details Feature
size
00BFMUL (multiple vectors)FEAT_SME2 && FEAT_SVE_BFSCALE
!= 00FMUL (multiple vectors)FEAT_SME2p2

SME2 Multiple and Single Vector - FP multiply

The encodings in this section are decoded from SME encodings.

313029282726252423222120191817161514131211109876543210
110000011op0111010op10op20
Decode fields Instruction details
op0op1op2
0 SME2 multiple and single vector FP multiply (two registers)
1 0 0 SME2 multiple and single vector FP multiply (four registers)
1 0 1 UNALLOCATED
1 1 UNALLOCATED

SME2 multiple and single vector FP multiply (two registers)

The encodings in this section are decoded from SME2 Multiple and Single Vector - FP multiply.

313029282726252423222120191817161514131211109876543210
11000001size1Zm0111010Zn0Zd0
Decode fields Instruction Details Feature
size
00BFMUL (multiple and single vector)FEAT_SME2 && FEAT_SVE_BFSCALE
!= 00FMUL (multiple and single vector)FEAT_SME2p2

SME2 multiple and single vector FP multiply (four registers)

The encodings in this section are decoded from SME2 Multiple and Single Vector - FP multiply.

313029282726252423222120191817161514131211109876543210
11000001size1Zm1111010Zn00Zd00
Decode fields Instruction Details Feature
size
00BFMUL (multiple and single vector)FEAT_SME2 && FEAT_SVE_BFSCALE
!= 00FMUL (multiple and single vector)FEAT_SME2p2

SME Memory

The encodings in this section are decoded from SME encodings.

313029282726252423222120191817161514131211109876543210
1110000op0op1op2op3op4
Decode fields Instruction details Feature
op0op1op2op3op4
0xx0 0xx SME load array vector (elements)-
0xx1 0xx SME store array vector (elements)-
100x 00000 0 xx000 0xx SME save and restore array-
100x 1 00000 000 SME2 lookup table load/store-
100x 1 00000 001 UNALLOCATED-
100x 1 00000 01x UNALLOCATED-
100x 1 01000 0xx UNALLOCATED-
100x 1 1x000 0xx UNALLOCATED-
100x xx01x 0xx UNALLOCATED-
100x xx1xx 0xx UNALLOCATED-
100x != xx000xx001 0xx UNALLOCATED-
100x != 00000 0 xx000 0xx UNALLOCATED-
101x 0xx UNALLOCATED-
110x 0xx UNALLOCATED-
1110 0xx LD1QFEAT_SME
1111 0xx ST1QFEAT_SME
1xx UNALLOCATED-

SME load array vector (elements)

The encodings in this section are decoded from SME Memory.

313029282726252423222120191817161514131211109876543210
11100000msz0RmVRsPgRn0opc
Decode fields Instruction Details Feature
msz
00LD1B (scalar plus scalar, tile slice)FEAT_SME
01LD1H (scalar plus scalar, tile slice)FEAT_SME
10LD1W (scalar plus scalar, tile slice)FEAT_SME
11LD1D (scalar plus scalar, tile slice)FEAT_SME

SME store array vector (elements)

The encodings in this section are decoded from SME Memory.

313029282726252423222120191817161514131211109876543210
11100000msz1RmVRsPgRn0opc
Decode fields Instruction Details Feature
msz
00ST1B (scalar plus scalar, tile slice)FEAT_SME
01ST1H (scalar plus scalar, tile slice)FEAT_SME
10ST1W (scalar plus scalar, tile slice)FEAT_SME
11ST1D (scalar plus scalar, tile slice)FEAT_SME

SME save and restore array

The encodings in this section are decoded from SME Memory.

313029282726252423222120191817161514131211109876543210
1110000100op000000Rv000Rn0imm4
Decode fields Instruction Details Feature
op
0LDR (array vector)FEAT_SME
1STR (array vector)FEAT_SME

SME2 lookup table load/store

The encodings in this section are decoded from SME Memory.

313029282726252423222120191817161514131211109876543210
1110000100opc100000Rn000opc2
Decode fields Instruction Details Feature
opcopc2
x0xxxxUNALLOCATED-
x10xxxUNALLOCATED-
x110xxUNALLOCATED-
x1110xUNALLOCATED-
x11110UNALLOCATED-
x11111!= 00UNALLOCATED-
!= x11111UNALLOCATED-
01111100LDR (table)FEAT_SME2
11111100STR (table)FEAT_SME2

SVE encodings

The encodings in this section are decoded from A64 instruction set encoding.

313029282726252423222120191817161514131211109876543210
op00010op1op2op3
Decode fields Instruction details Feature
op0op1op2op3
000 0xx0xxxx 000xxx SVE Integer Binary Arithmetic - Predicated-
000 0xx0xxxx 001xxx SVE Integer Reduction-
000 0xx0xxxx 100xxx SVE Bitwise Shift - Predicated-
000 0xx0xxxx 101xxx SVE Integer Unary Arithmetic - Predicated-
000 0xx0xxxx x1xxxx SVE Integer Multiply-Add - Predicated-
000 0xx1xxxx 001xxx SVE Bitwise Logical - Unpredicated-
000 0xx1xxxx 0100xx SVE Index Generation-
000 0xx1xxxx 0101xx SVE Stack Allocation-
000 0xx1xxxx 011xxx SVE2 Integer Arithmetic - Unpredicated-
000 0xx1xxxx 100xxx SVE Bitwise Shift - Unpredicated-
000 0xx1xxxx 1011xx SVE Integer Misc - Unpredicated-
000 0xx1xxxx 11xxxx SVE Element Count-
000 10x1xxxx 000xxx SVE Permute Vector - Extract-
000 11x1xxxx 000xxx SVE Permute Vector - Segments-
000 1xx00xxx SVE Bitwise Immediate-
000 1xx01xxx SVE Integer Wide Immediate - Predicated-
000 1xx1xxxx 001001 SVE Permute Vector - One Source Quadwords-
000 1xx1xxxx 001110 SVE Permute Vector - Unpredicated-
000 1xx1xxxx 001111 UNALLOCATED-
000 1xx1xxxx 010xxx SVE Permute Predicate-
000 1xx1xxxx 10xxxx SVE Permute Vector - Predicated-
001 0xx0xxxx SVE Integer Compare - Vectors-
001 1xx00xxx 11xxxx SVE Propagate Break-
001 1xx01xxx 01xxxx SVE Partition Break-
001 1xx01xxx 11xxxx SVE Predicate Misc-
001 1xx100xx 10xxxx SVE Predicate Count-
001 1xx101xx 1000xx SVE Inc/Dec by Predicate Count-
001 1xx101xx 1001xx SVE Write FFR-
001 1xx101xx 101xxx UNALLOCATED-
001 1xx11xxx 10xxxx UNALLOCATED-
001 1xx1xxxx 00xxxx SVE Integer Compare - Scalars-
001 1xx1xxxx 01xxxx 1 SVE Scalar Integer Compare - Predicate-as-counter-
001 1xx1xxxx 11xxxx SVE Integer Wide Immediate - Unpredicated-
010 0x10xxxx 11001x UNALLOCATED-
010 0xx0xxxx 0xxxxx SVE Integer Multiply-Add - Unpredicated-
010 0xx0xxxx 10xxxx SVE2 Integer - Predicated-
010 0xx1xxxx SVE Multiply - Indexed-
010 1xx0xxxx 0xxxxx SVE2 Widening Integer Arithmetic-
010 1xx0xxxx 10xxxx SVE Misc-
010 1xx0xxxx 11xxxx SVE2 Accumulate-
010 1xx1xxxx 0xxxxx SVE2 Narrowing-
010 1xx1xxxx 101xxx SVE2 Histogram (Segment) and Lookup Table-
010 1xx1xxxx 111xxx SVE2 Crypto Extensions-
011 0x01xxxx 0111xx UNALLOCATED-
011 0x01xxxx 10xx10 SVE2 FP8 widening multiply-add-
011 0x01xxxx 10xx11 UNALLOCATED-
011 0x01xxxx 11x1xx UNALLOCATED-
011 0x11xxxx 10xx1x UNALLOCATED-
011 0x11xxxx x1x1xx UNALLOCATED-
011 0xx00001 100xxx UNALLOCATED-
011 0xx0010x 100xxx UNALLOCATED-
011 0xx00x0x 11xxxx UNALLOCATED-
011 0xx00x1x 1xxxxx UNALLOCATED-
011 0xx010xx 11xxxx UNALLOCATED-
011 0xx011xx 1xxxxx SVE2 floating-point unary operations - zeroing predicated-
011 0xx1xxxx 001011 UNALLOCATED-
011 0xx1xxxx 0011xx UNALLOCATED-
011 0xx1xxxx 01x0xx SVE floating-point widening multiply-add - indexed-
011 0xx1xxxx 10x00x SVE floating-point widening multiply-add-
011 0xx1xxxx 10x10x UNALLOCATED-
011 0xx1xxxx 11101x UNALLOCATED-
011 1xx001xx 0010xx UNALLOCATED-
011 1xx001xx 0011xx SVE floating-point unary operations - unpredicated-
011 1xx010xx 001xxx SVE floating-point compare - with zero-
011 1xx011xx 001xxx SVE floating-point accumulating reduction-
011 1xx0xxxx 100xxx SVE floating-point arithmetic - predicated-
011 1xx0xxxx 101xxx SVE floating-point unary operations - merging predicated-
011 1xx1xxxx SVE floating-point multiply-add-
100 SVE Memory - 32-bit Gather and Unsized Contiguous-
101 SVE Memory - Contiguous Load-
110 SVE Memory - 64-bit Gather-
111 001xxx SVE Memory - Non-temporal and Quadword Scatter Store-
111 011xxx SVE Memory - Non-temporal and Multi-register Contiguous Store-
111 0x0xxx SVE Memory - Contiguous Store and Unsized Contiguous-
111 101xxx SVE Memory - Scatter-
111 111xxx SVE Memory - Contiguous Store with Immediate Offset-
111 1x0xxx SVE Memory - Scatter with Optional Sign Extend-
000 0xx1xxxx 000xxx SVE integer add/subtract vectors (unpredicated)-
000 0xx1xxxx 1010xx SVE address generation-
000 1xx1xxxx 001000 DUP (indexed)FEAT_SVE || FEAT_SME
000 1xx1xxxx 00101x SVE table lookup (three sources)-
000 1xx1xxxx 001100 TBLSingle register tableFEAT_SVE || FEAT_SME
000 1xx1xxxx 001101 TBXQFEAT_SVE2p1 || FEAT_SME2p1
000 1xx1xxxx 011xxx SVE permute vector elements-
000 1xx1xxxx 11xxxx SEL (vectors)FEAT_SVE || FEAT_SME
001 0xx1xxxx SVE integer compare with unsigned immediate-
001 1xx00xxx 01xxxx SVE predicate logical operations-
001 1xx0xxxx x0xxxx SVE integer compare with signed immediate-
001 1xx1xxxx 01xxxx 0 SVE broadcast predicate element-
010 0000xxxx 11001x SVE two-way dot product-
010 0100xxxx 11001x SVE two-way dot product (indexed)-
010 0xx0xxxx 11000x SVE integer clamp-
010 0xx0xxxx 1101x0 SVE2 multiply-add (checked pointer)-
010 0xx0xxxx 1101x1 SVE2 absolute difference and accumulate long-
010 0xx0xxxx 111xxx SVE permute vector elements (quadwords)-
010 1xx1xxxx 100xxx SVE2 character match-
010 1xx1xxxx 110xxx HISTCNTFEAT_SVE2
011 00x1xxxx 111000 SVE2 FP8 matrix multiply-accumulate-
011 01x1xxxx 111000 SVE2 floating-point non-widening matrix-multiply accumulate-
011 0x01xxxx 0101xx SVE2 FP8 multiply-add long (indexed)-
011 0xx00000 100xxx FCADDFEAT_SVE || FEAT_SME
011 0xx0000x 101xxx SVE floating-point convert (top, predicated)-
011 0xx0010x 101xxx SVE floating-point convert precision odd elements-
011 0xx010xx 100xxx SVE2 floating-point pairwise operations-
011 0xx010xx 101xxx SVE floating-point recursive reduction (quadwords)-
011 0xx0xxxx 0xxxxx FCMLA (vectors)FEAT_SVE || FEAT_SME
011 0xx1xxxx 0000xx SVE floating-point multiply-add (indexed)-
011 0xx1xxxx 0001xx SVE floating-point complex multiply-add (indexed)-
011 0xx1xxxx 001001 SVE FP clamp-
011 0xx1xxxx 0010x0 SVE floating-point multiply (indexed)-
011 0xx1xxxx 1100xx SVE2 FP8 multiply-add long long (indexed)-
011 0xx1xxxx 111001 SVE floating-point matrix multiply accumulate-
011 1xx000xx 001xxx SVE floating-point recursive reduction-
011 1xx0xxxx 000xxx SVE floating-point arithmetic (unpredicated)-
011 1xx0xxxx x1xxxx SVE floating-point compare vectors-

SVE Integer Binary Arithmetic - Predicated

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
000001000op0000
Decode fields Instruction details
op0
00x SVE integer add/subtract vectors (predicated)
01x SVE integer min/max/difference (predicated)
100 SVE integer multiply vectors (predicated)
101 SVE integer divide vectors (predicated)
11x SVE bitwise logical operations (predicated)

SVE integer add/subtract vectors (predicated)

The encodings in this section are decoded from SVE Integer Binary Arithmetic - Predicated.

313029282726252423222120191817161514131211109876543210
00000100size000opc000PgZmZdn
Decode fields Instruction Details Feature
sizeopc
000ADD (vectors, predicated)FEAT_SVE || FEAT_SME
001SUB (vectors, predicated)FEAT_SVE || FEAT_SME
010UNALLOCATED-
011SUBR (vectors)FEAT_SVE || FEAT_SME
11100ADDPT (predicated)FEAT_SVE && FEAT_CPA
11101SUBPT (predicated)FEAT_SVE && FEAT_CPA
1111xUNALLOCATED-
!= 111xxUNALLOCATED-

SVE integer min/max/difference (predicated)

The encodings in this section are decoded from SVE Integer Binary Arithmetic - Predicated.

313029282726252423222120191817161514131211109876543210
00000100size001opcU000PgZmZdn
Decode fields Instruction Details Feature
opcU
000SMAX (vectors)FEAT_SVE || FEAT_SME
001UMAX (vectors)FEAT_SVE || FEAT_SME
010SMIN (vectors)FEAT_SVE || FEAT_SME
011UMIN (vectors)FEAT_SVE || FEAT_SME
100SABDFEAT_SVE || FEAT_SME
101UABDFEAT_SVE || FEAT_SME
11UNALLOCATED-

SVE integer multiply vectors (predicated)

The encodings in this section are decoded from SVE Integer Binary Arithmetic - Predicated.

313029282726252423222120191817161514131211109876543210
00000100size0100HU000PgZmZdn
Decode fields Instruction Details Feature
HU
00MUL (vectors, predicated)FEAT_SVE || FEAT_SME
01UNALLOCATED-
10SMULH (predicated)FEAT_SVE || FEAT_SME
11UMULH (predicated)FEAT_SVE || FEAT_SME

SVE integer divide vectors (predicated)

The encodings in this section are decoded from SVE Integer Binary Arithmetic - Predicated.

313029282726252423222120191817161514131211109876543210
00000100size0101RU000PgZmZdn
Decode fields Instruction Details Feature
RU
00SDIVFEAT_SVE || FEAT_SME
01UDIVFEAT_SVE || FEAT_SME
10SDIVRFEAT_SVE || FEAT_SME
11UDIVRFEAT_SVE || FEAT_SME

SVE bitwise logical operations (predicated)

The encodings in this section are decoded from SVE Integer Binary Arithmetic - Predicated.

313029282726252423222120191817161514131211109876543210
00000100size011opc000PgZmZdn
Decode fields Instruction Details Feature
opc
000ORR (vectors, predicated)FEAT_SVE || FEAT_SME
001EOR (vectors, predicated)FEAT_SVE || FEAT_SME
010AND (vectors, predicated)FEAT_SVE || FEAT_SME
011BIC (vectors, predicated)FEAT_SVE || FEAT_SME
1xxUNALLOCATED-

SVE Integer Reduction

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
000001000op0001
Decode fields Instruction details
op0
000 SVE integer add reduction (predicated)
001 SVE integer add reduction (quadwords)
010 SVE integer min/max reduction (predicated)
011 SVE integer min/max reduction (quadwords)
10x SVE constructive prefix (predicated)
110 SVE bitwise logical reduction (predicated)
111 SVE bitwise logical reduction (quadwords)

SVE integer add reduction (predicated)

The encodings in this section are decoded from SVE Integer Reduction.

313029282726252423222120191817161514131211109876543210
000001000000opU001PgZnVd
Decode fields Instruction Details Feature
opU
00SADDVFEAT_SVE || FEAT_SME
01UADDVFEAT_SVE || FEAT_SME
1UNALLOCATED-

SVE integer add reduction (quadwords)

The encodings in this section are decoded from SVE Integer Reduction.

313029282726252423222120191817161514131211109876543210
000001000001opU001PgZnVd
Decode fields Instruction Details Feature
opU
00UNALLOCATED-
01ADDQVFEAT_SVE2p1 || FEAT_SME2p1
1UNALLOCATED-

SVE integer min/max reduction (predicated)

The encodings in this section are decoded from SVE Integer Reduction.

313029282726252423222120191817161514131211109876543210
000001000010opU001PgZnVd
Decode fields Instruction Details Feature
opU
00SMAXVFEAT_SVE || FEAT_SME
01UMAXVFEAT_SVE || FEAT_SME
10SMINVFEAT_SVE || FEAT_SME
11UMINVFEAT_SVE || FEAT_SME

SVE integer min/max reduction (quadwords)

The encodings in this section are decoded from SVE Integer Reduction.

313029282726252423222120191817161514131211109876543210
000001000011opU001PgZnVd
Decode fields Instruction Details Feature
opU
00SMAXQVFEAT_SVE2p1 || FEAT_SME2p1
01UMAXQVFEAT_SVE2p1 || FEAT_SME2p1
10SMINQVFEAT_SVE2p1 || FEAT_SME2p1
11UMINQVFEAT_SVE2p1 || FEAT_SME2p1

SVE constructive prefix (predicated)

The encodings in this section are decoded from SVE Integer Reduction.

313029282726252423222120191817161514131211109876543210
00000100010opcM001PgZnZd
Decode fields Instruction Details Feature
opc
00MOVPRFX (predicated)FEAT_SVE || FEAT_SME
!= 00UNALLOCATED-

SVE bitwise logical reduction (predicated)

The encodings in this section are decoded from SVE Integer Reduction.

313029282726252423222120191817161514131211109876543210
000001000110opc001PgZnVd
Decode fields Instruction Details Feature
opc
00ORVFEAT_SVE || FEAT_SME
01EORVFEAT_SVE || FEAT_SME
10ANDVFEAT_SVE || FEAT_SME
11UNALLOCATED-

SVE bitwise logical reduction (quadwords)

The encodings in this section are decoded from SVE Integer Reduction.

313029282726252423222120191817161514131211109876543210
000001000111opc001PgZnVd
Decode fields Instruction Details Feature
opc
00ORQVFEAT_SVE2p1 || FEAT_SME2p1
01EORQVFEAT_SVE2p1 || FEAT_SME2p1
10ANDQVFEAT_SVE2p1 || FEAT_SME2p1
11UNALLOCATED-

SVE Bitwise Shift - Predicated

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
000001000op0100
Decode fields Instruction details
op0
0x SVE bitwise shift by immediate (predicated)
10 SVE bitwise shift by vector (predicated)
11 SVE bitwise shift by wide elements (predicated)

SVE bitwise shift by immediate (predicated)

The encodings in this section are decoded from SVE Bitwise Shift - Predicated.

313029282726252423222120191817161514131211109876543210
00000100tszh00opcLU100Pgtszlimm3Zdn
Decode fields Instruction Details Feature
opcLU
0000ASR (immediate, predicated)FEAT_SVE || FEAT_SME
0001LSR (immediate, predicated)FEAT_SVE || FEAT_SME
0010UNALLOCATED-
0011LSL (immediate, predicated)FEAT_SVE || FEAT_SME
0100ASRDFEAT_SVE || FEAT_SME
0101UNALLOCATED-
0110SQSHL (immediate)FEAT_SVE2 || FEAT_SME
0111UQSHL (immediate)FEAT_SVE2 || FEAT_SME
10UNALLOCATED-
1100SRSHRFEAT_SVE2 || FEAT_SME
1101URSHRFEAT_SVE2 || FEAT_SME
1110UNALLOCATED-
1111SQSHLUFEAT_SVE2 || FEAT_SME

SVE bitwise shift by vector (predicated)

The encodings in this section are decoded from SVE Bitwise Shift - Predicated.

313029282726252423222120191817161514131211109876543210
00000100010RLU100PgZmZdn
Decode fields Instruction Details Feature
RLU
10UNALLOCATED-
000ASR (vectors)FEAT_SVE || FEAT_SME
001LSR (vectors)FEAT_SVE || FEAT_SME
011LSL (vectors)FEAT_SVE || FEAT_SME
100ASRRFEAT_SVE || FEAT_SME
101LSRRFEAT_SVE || FEAT_SME
111LSLRFEAT_SVE || FEAT_SME

SVE bitwise shift by wide elements (predicated)

The encodings in this section are decoded from SVE Bitwise Shift - Predicated.

313029282726252423222120191817161514131211109876543210
00000100011RLU100PgZmZdn
Decode fields Instruction Details Feature
RLU
000ASR (wide elements, predicated)FEAT_SVE || FEAT_SME
001LSR (wide elements, predicated)FEAT_SVE || FEAT_SME
010UNALLOCATED-
011LSL (wide elements, predicated)FEAT_SVE || FEAT_SME
1UNALLOCATED-

SVE Integer Unary Arithmetic - Predicated

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
000001000op0101
Decode fields Instruction details
op0
x0 SVE integer unary operations (predicated)
x1 SVE bitwise unary operations (predicated)

SVE integer unary operations (predicated)

The encodings in this section are decoded from SVE Integer Unary Arithmetic - Predicated.

313029282726252423222120191817161514131211109876543210
00000100size0M0opc101PgZnZd
Decode fields Instruction Details Feature
Mopc
0000SXTB, SXTH, SXTWByte, zeroingFEAT_SVE2p2 || FEAT_SME2p2
0001UXTB, UXTH, UXTWByte, zeroingFEAT_SVE2p2 || FEAT_SME2p2
0010SXTB, SXTH, SXTWHalfword, zeroingFEAT_SVE2p2 || FEAT_SME2p2
0011UXTB, UXTH, UXTWHalfword, zeroingFEAT_SVE2p2 || FEAT_SME2p2
0100SXTB, SXTH, SXTWWord, zeroingFEAT_SVE2p2 || FEAT_SME2p2
0101UXTB, UXTH, UXTWWord, zeroingFEAT_SVE2p2 || FEAT_SME2p2
0110ABSZeroingFEAT_SVE2p2 || FEAT_SME2p2
0111NEGZeroingFEAT_SVE2p2 || FEAT_SME2p2
1000SXTB, SXTH, SXTWByte, mergingFEAT_SVE || FEAT_SME
1001UXTB, UXTH, UXTWByte, mergingFEAT_SVE || FEAT_SME
1010SXTB, SXTH, SXTWHalfword, mergingFEAT_SVE || FEAT_SME
1011UXTB, UXTH, UXTWHalfword, mergingFEAT_SVE || FEAT_SME
1100SXTB, SXTH, SXTWWord, mergingFEAT_SVE || FEAT_SME
1101UXTB, UXTH, UXTWWord, mergingFEAT_SVE || FEAT_SME
1110ABSMergingFEAT_SVE || FEAT_SME
1111NEGMergingFEAT_SVE || FEAT_SME

SVE bitwise unary operations (predicated)

The encodings in this section are decoded from SVE Integer Unary Arithmetic - Predicated.

313029282726252423222120191817161514131211109876543210
00000100size0M1opc101PgZnZd
Decode fields Instruction Details Feature
Mopc
111UNALLOCATED-
0000CLSZeroingFEAT_SVE2p2 || FEAT_SME2p2
0001CLZZeroingFEAT_SVE2p2 || FEAT_SME2p2
0010CNTZeroingFEAT_SVE2p2 || FEAT_SME2p2
0011CNOTZeroingFEAT_SVE2p2 || FEAT_SME2p2
0100FABSZeroingFEAT_SVE2p2 || FEAT_SME2p2
0101FNEGZeroingFEAT_SVE2p2 || FEAT_SME2p2
0110NOT (vector)ZeroingFEAT_SVE2p2 || FEAT_SME2p2
1000CLSMergingFEAT_SVE || FEAT_SME
1001CLZMergingFEAT_SVE || FEAT_SME
1010CNTMergingFEAT_SVE || FEAT_SME
1011CNOTMergingFEAT_SVE || FEAT_SME
1100FABSMergingFEAT_SVE || FEAT_SME
1101FNEGMergingFEAT_SVE || FEAT_SME
1110NOT (vector)MergingFEAT_SVE || FEAT_SME

SVE Integer Multiply-Add - Predicated

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
000001000op01
Decode fields Instruction details
op0
0 SVE integer multiply-accumulate writing addend (predicated)
1 SVE integer multiply-add writing multiplicand (predicated)

SVE integer multiply-accumulate writing addend (predicated)

The encodings in this section are decoded from SVE Integer Multiply-Add - Predicated.

313029282726252423222120191817161514131211109876543210
00000100size0Zm01opPgZnZda
Decode fields Instruction Details Feature
op
0MLA (vectors)FEAT_SVE || FEAT_SME
1MLS (vectors)FEAT_SVE || FEAT_SME

SVE integer multiply-add writing multiplicand (predicated)

The encodings in this section are decoded from SVE Integer Multiply-Add - Predicated.

313029282726252423222120191817161514131211109876543210
00000100size0Zm11opPgZaZdn
Decode fields Instruction Details Feature
op
0MADFEAT_SVE || FEAT_SME
1MSBFEAT_SVE || FEAT_SME

SVE Bitwise Logical - Unpredicated

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
000001001001op0
Decode fields Instruction details Feature
op0
0xx UNALLOCATED-
100 SVE bitwise logical operations (unpredicated)-
101 XARFEAT_SVE2 || FEAT_SME
11x SVE2 bitwise ternary operations-

SVE bitwise logical operations (unpredicated)

The encodings in this section are decoded from SVE Bitwise Logical - Unpredicated.

313029282726252423222120191817161514131211109876543210
00000100opc1Zm001100ZnZd
Decode fields Instruction Details Feature
opc
00AND (vectors, unpredicated)FEAT_SVE || FEAT_SME
01ORR (vectors, unpredicated)FEAT_SVE || FEAT_SME
10EOR (vectors, unpredicated)FEAT_SVE || FEAT_SME
11BIC (vectors, unpredicated)FEAT_SVE || FEAT_SME

SVE2 bitwise ternary operations

The encodings in this section are decoded from SVE Bitwise Logical - Unpredicated.

313029282726252423222120191817161514131211109876543210
00000100opc1Zm00111o2ZkZdn
Decode fields Instruction Details Feature
opco2
000EOR3FEAT_SVE2 || FEAT_SME
001BSLFEAT_SVE2 || FEAT_SME
010BCAXFEAT_SVE2 || FEAT_SME
011BSL1NFEAT_SVE2 || FEAT_SME
1x0UNALLOCATED-
101BSL2NFEAT_SVE2 || FEAT_SME
111NBSLFEAT_SVE2 || FEAT_SME

SVE Index Generation

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
0000010010100op0
Decode fields Instruction details Feature
op0
00 INDEX (immediates)FEAT_SVE || FEAT_SME
01 INDEX (scalar, immediate)FEAT_SVE || FEAT_SME
10 INDEX (immediate, scalar)FEAT_SVE || FEAT_SME
11 INDEX (scalars)FEAT_SVE || FEAT_SME

SVE Stack Allocation

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
00000100op010101op1
Decode fields Instruction details
op0op1
0 0 SVE stack frame adjustment
0 1 Streaming SVE stack frame adjustment
1 0 SVE stack frame size
1 1 Streaming SVE stack frame size

SVE stack frame adjustment

The encodings in this section are decoded from SVE Stack Allocation.

313029282726252423222120191817161514131211109876543210
000001000op1Rn01010imm6Rd
Decode fields Instruction Details Feature
op
0ADDVLFEAT_SVE || FEAT_SME
1ADDPLFEAT_SVE || FEAT_SME

Streaming SVE stack frame adjustment

The encodings in this section are decoded from SVE Stack Allocation.

313029282726252423222120191817161514131211109876543210
000001000op1Rn01011imm6Rd
Decode fields Instruction Details Feature
op
0ADDSVLFEAT_SME
1ADDSPLFEAT_SME

SVE stack frame size

The encodings in this section are decoded from SVE Stack Allocation.

313029282726252423222120191817161514131211109876543210
000001001op1opc201010imm6Rd
Decode fields Instruction Details Feature
opopc2
011111RDVLFEAT_SVE || FEAT_SME
0!= 11111UNALLOCATED-
1UNALLOCATED-

Streaming SVE stack frame size

The encodings in this section are decoded from SVE Stack Allocation.

313029282726252423222120191817161514131211109876543210
000001001op1opc201011imm6Rd
Decode fields Instruction Details Feature
opopc2
011111RDSVLFEAT_SME
0!= 11111UNALLOCATED-
1UNALLOCATED-

SVE2 Integer Arithmetic - Unpredicated

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
000001001011op0
Decode fields Instruction details Feature
op0
0xx SVE2 integer multiply vectors (unpredicated)-
10x SVE2 signed saturating doubling multiply high (unpredicated)-
110 ADDQPFEAT_SVE2p3 || FEAT_SME2p3
111 ADDSUBPFEAT_SVE2p3 || FEAT_SME2p3

SVE2 integer multiply vectors (unpredicated)

The encodings in this section are decoded from SVE2 Integer Arithmetic - Unpredicated.

313029282726252423222120191817161514131211109876543210
00000100size1Zm0110opcZnZd
Decode fields Instruction Details Feature
sizeopc
00MUL (vectors, unpredicated)FEAT_SVE2 || FEAT_SME
10SMULH (unpredicated)FEAT_SVE2 || FEAT_SME
11UMULH (unpredicated)FEAT_SVE2 || FEAT_SME
0001PMULFEAT_SVE2 || FEAT_SME
!= 0001UNALLOCATED-

SVE2 signed saturating doubling multiply high (unpredicated)

The encodings in this section are decoded from SVE2 Integer Arithmetic - Unpredicated.

313029282726252423222120191817161514131211109876543210
00000100size1Zm01110RZnZd
Decode fields Instruction Details Feature
R
0SQDMULH (vectors)FEAT_SVE2 || FEAT_SME
1SQRDMULH (vectors)FEAT_SVE2 || FEAT_SME

SVE Bitwise Shift - Unpredicated

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
000001001100op0
Decode fields Instruction details
op0
0 SVE bitwise shift by wide elements (unpredicated)
1 SVE bitwise shift by immediate (unpredicated)

SVE bitwise shift by wide elements (unpredicated)

The encodings in this section are decoded from SVE Bitwise Shift - Unpredicated.

313029282726252423222120191817161514131211109876543210
000001001Zm1000opcZnZd
Decode fields Instruction Details Feature
opc
00ASR (wide elements, unpredicated)FEAT_SVE || FEAT_SME
01LSR (wide elements, unpredicated)FEAT_SVE || FEAT_SME
10UNALLOCATED-
11LSL (wide elements, unpredicated)FEAT_SVE || FEAT_SME

SVE bitwise shift by immediate (unpredicated)

The encodings in this section are decoded from SVE Bitwise Shift - Unpredicated.

313029282726252423222120191817161514131211109876543210
00000100tszh1tszlimm31001opcZnZd
Decode fields Instruction Details Feature
opc
00ASR (immediate, unpredicated)FEAT_SVE || FEAT_SME
01LSR (immediate, unpredicated)FEAT_SVE || FEAT_SME
10UNALLOCATED-
11LSL (immediate, unpredicated)FEAT_SVE || FEAT_SME

SVE Integer Misc - Unpredicated

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
0000010011011op0
Decode fields Instruction details
op0
0x SVE floating-point trig select coefficient
10 SVE floating-point exponential accelerator
11 SVE constructive prefix (unpredicated)

SVE floating-point trig select coefficient

The encodings in this section are decoded from SVE Integer Misc - Unpredicated.

313029282726252423222120191817161514131211109876543210
000001001Zm10110opZnZd
Decode fields Instruction Details Feature
op
0FTSSELFEAT_SVE
1UNALLOCATED-

SVE floating-point exponential accelerator

The encodings in this section are decoded from SVE Integer Misc - Unpredicated.

313029282726252423222120191817161514131211109876543210
000001001opc101110ZnZd
Decode fields Instruction Details Feature
opc
00000FEXPAFEAT_SVE || FEAT_SSVE_FEXPA
!= 00000UNALLOCATED-

SVE constructive prefix (unpredicated)

The encodings in this section are decoded from SVE Integer Misc - Unpredicated.

313029282726252423222120191817161514131211109876543210
00000100opc1opc2101111ZnZd
Decode fields Instruction Details Feature
opcopc2
0000000MOVPRFX (unpredicated)FEAT_SVE || FEAT_SME
00!= 00000UNALLOCATED-
!= 00UNALLOCATED-

SVE Element Count

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
000001001op011op1
Decode fields Instruction details
op0op1
0 00x SVE saturating inc/dec vector by element count
0 100 SVE element count
0 101 UNALLOCATED
1 000 SVE inc/dec vector by element count
1 100 SVE inc/dec register by element count
1 x01 UNALLOCATED
01x UNALLOCATED
11x SVE saturating inc/dec register by element count

SVE saturating inc/dec vector by element count

The encodings in this section are decoded from SVE Element Count.

313029282726252423222120191817161514131211109876543210
00000100size10imm41100DUpatternZdn
Decode fields Instruction Details Feature
sizeDU
00UNALLOCATED-
0100SQINCH (vector)FEAT_SVE || FEAT_SME
0101UQINCH (vector)FEAT_SVE || FEAT_SME
0110SQDECH (vector)FEAT_SVE || FEAT_SME
0111UQDECH (vector)FEAT_SVE || FEAT_SME
1000SQINCW (vector)FEAT_SVE || FEAT_SME
1001UQINCW (vector)FEAT_SVE || FEAT_SME
1010SQDECW (vector)FEAT_SVE || FEAT_SME
1011UQDECW (vector)FEAT_SVE || FEAT_SME
1100SQINCD (vector)FEAT_SVE || FEAT_SME
1101UQINCD (vector)FEAT_SVE || FEAT_SME
1110SQDECD (vector)FEAT_SVE || FEAT_SME
1111UQDECD (vector)FEAT_SVE || FEAT_SME

SVE element count

The encodings in this section are decoded from SVE Element Count.

313029282726252423222120191817161514131211109876543210
00000100size10imm411100oppatternRd
Decode fields Instruction Details Feature
sizeop
1UNALLOCATED-
000CNTB, CNTD, CNTH, CNTWByteFEAT_SVE || FEAT_SME
010CNTB, CNTD, CNTH, CNTWHalfwordFEAT_SVE || FEAT_SME
100CNTB, CNTD, CNTH, CNTWWordFEAT_SVE || FEAT_SME
110CNTB, CNTD, CNTH, CNTWDoublewordFEAT_SVE || FEAT_SME

SVE inc/dec vector by element count

The encodings in this section are decoded from SVE Element Count.

313029282726252423222120191817161514131211109876543210
00000100size11imm411000DpatternZdn
Decode fields Instruction Details Feature
sizeD
00UNALLOCATED-
010INCD, INCH, INCW (vector)HalfwordFEAT_SVE || FEAT_SME
011DECD, DECH, DECW (vector)HalfwordFEAT_SVE || FEAT_SME
100INCD, INCH, INCW (vector)WordFEAT_SVE || FEAT_SME
101DECD, DECH, DECW (vector)WordFEAT_SVE || FEAT_SME
110INCD, INCH, INCW (vector)DoublewordFEAT_SVE || FEAT_SME
111DECD, DECH, DECW (vector)DoublewordFEAT_SVE || FEAT_SME

SVE inc/dec register by element count

The encodings in this section are decoded from SVE Element Count.

313029282726252423222120191817161514131211109876543210
00000100size11imm411100DpatternRdn
Decode fields Instruction Details Feature
sizeD
000INCB, INCD, INCH, INCW (scalar)ByteFEAT_SVE || FEAT_SME
001DECB, DECD, DECH, DECW (scalar)ByteFEAT_SVE || FEAT_SME
010INCB, INCD, INCH, INCW (scalar)HalfwordFEAT_SVE || FEAT_SME
011DECB, DECD, DECH, DECW (scalar)HalfwordFEAT_SVE || FEAT_SME
100INCB, INCD, INCH, INCW (scalar)WordFEAT_SVE || FEAT_SME
101DECB, DECD, DECH, DECW (scalar)WordFEAT_SVE || FEAT_SME
110INCB, INCD, INCH, INCW (scalar)DoublewordFEAT_SVE || FEAT_SME
111DECB, DECD, DECH, DECW (scalar)DoublewordFEAT_SVE || FEAT_SME

SVE saturating inc/dec register by element count

The encodings in this section are decoded from SVE Element Count.

313029282726252423222120191817161514131211109876543210
00000100size1sfimm41111DUpatternRdn
Decode fields Instruction Details Feature
sizesfDU
00000SQINCB32-bitFEAT_SVE || FEAT_SME
00001UQINCB32-bitFEAT_SVE || FEAT_SME
00010SQDECB32-bitFEAT_SVE || FEAT_SME
00011UQDECB32-bitFEAT_SVE || FEAT_SME
00100SQINCB64-bitFEAT_SVE || FEAT_SME
00101UQINCB64-bitFEAT_SVE || FEAT_SME
00110SQDECB64-bitFEAT_SVE || FEAT_SME
00111UQDECB64-bitFEAT_SVE || FEAT_SME
01000SQINCH (scalar)32-bitFEAT_SVE || FEAT_SME
01001UQINCH (scalar)32-bitFEAT_SVE || FEAT_SME
01010SQDECH (scalar)32-bitFEAT_SVE || FEAT_SME
01011UQDECH (scalar)32-bitFEAT_SVE || FEAT_SME
01100SQINCH (scalar)64-bitFEAT_SVE || FEAT_SME
01101UQINCH (scalar)64-bitFEAT_SVE || FEAT_SME
01110SQDECH (scalar)64-bitFEAT_SVE || FEAT_SME
01111UQDECH (scalar)64-bitFEAT_SVE || FEAT_SME
10000SQINCW (scalar)32-bitFEAT_SVE || FEAT_SME
10001UQINCW (scalar)32-bitFEAT_SVE || FEAT_SME
10010SQDECW (scalar)32-bitFEAT_SVE || FEAT_SME
10011UQDECW (scalar)32-bitFEAT_SVE || FEAT_SME
10100SQINCW (scalar)64-bitFEAT_SVE || FEAT_SME
10101UQINCW (scalar)64-bitFEAT_SVE || FEAT_SME
10110SQDECW (scalar)64-bitFEAT_SVE || FEAT_SME
10111UQDECW (scalar)64-bitFEAT_SVE || FEAT_SME
11000SQINCD (scalar)32-bitFEAT_SVE || FEAT_SME
11001UQINCD (scalar)32-bitFEAT_SVE || FEAT_SME
11010SQDECD (scalar)32-bitFEAT_SVE || FEAT_SME
11011UQDECD (scalar)32-bitFEAT_SVE || FEAT_SME
11100SQINCD (scalar)64-bitFEAT_SVE || FEAT_SME
11101UQINCD (scalar)64-bitFEAT_SVE || FEAT_SME
11110SQDECD (scalar)64-bitFEAT_SVE || FEAT_SME
11111UQDECD (scalar)64-bitFEAT_SVE || FEAT_SME

SVE Permute Vector - Extract

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
000001010op01000
Decode fields Instruction details Feature
op0
0 EXTDestructiveFEAT_SVE || FEAT_SME
1 EXTConstructiveFEAT_SVE2 || FEAT_SME

SVE Permute Vector - Segments

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
000001011op01000
Decode fields Instruction details
op0
0 SVE permute vector segments
1 UNALLOCATED

SVE permute vector segments

The encodings in this section are decoded from SVE Permute Vector - Segments.

313029282726252423222120191817161514131211109876543210
00000101101Zm000opcHZnZd
Decode fields Instruction Details Feature
opcH
000ZIP1, ZIP2 (vectors)Low halves (quadwords)FEAT_F64MM
001ZIP1, ZIP2 (vectors)High halves (quadwords)FEAT_F64MM
010UZP1, UZP2 (vectors)Even (quadwords)FEAT_F64MM
011UZP1, UZP2 (vectors)Odd (quadwords)FEAT_F64MM
10UNALLOCATED-
110TRN1, TRN2 (vectors)Even (quadwords)FEAT_F64MM
111TRN1, TRN2 (vectors)Odd (quadwords)FEAT_F64MM

SVE Bitwise Immediate

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
00000101op000op1
Decode fields Instruction details Feature
op0op1
11 00 DUPMFEAT_SVE || FEAT_SME
!= 00 UNALLOCATED-
!= 11 00 SVE bitwise logical with immediate (unpredicated)-

SVE bitwise logical with immediate (unpredicated)

The encodings in this section are decoded from SVE Bitwise Immediate.

313029282726252423222120191817161514131211109876543210
00000101!= 110000imm13Zdn
opc

The following constraints also apply to this encoding: opc != '11'

Decode fields Instruction Details Feature
opc
00ORR (immediate)FEAT_SVE || FEAT_SME
01EOR (immediate)FEAT_SVE || FEAT_SME
10AND (immediate)FEAT_SVE || FEAT_SME

SVE Integer Wide Immediate - Predicated

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
0000010101op0
Decode fields Instruction details Feature
op0
0xx SVE copy integer immediate (predicated)-
10x UNALLOCATED-
110 FCPYFEAT_SVE || FEAT_SME
111 UNALLOCATED-

SVE copy integer immediate (predicated)

The encodings in this section are decoded from SVE Integer Wide Immediate - Predicated.

313029282726252423222120191817161514131211109876543210
00000101size01Pg0Mshimm8Zd
Decode fields Instruction Details Feature
M
0CPY (immediate, zeroing)FEAT_SVE || FEAT_SME
1CPY (immediate, merging)FEAT_SVE || FEAT_SME

SVE Permute Vector - One Source Quadwords

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
00000101op01op1001001
Decode fields Instruction details Feature
op0op1
00 DUPQFEAT_SVE2p1 || FEAT_SME2p1
01 0 EXTQFEAT_SVE2p1 || FEAT_SME2p1
01 1 UNALLOCATED-
1x UNALLOCATED-

SVE Permute Vector - Unpredicated

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
000001011op0op1001110op2op3
Decode fields Instruction details Feature
op0op1op2op3
00 000 DUP (scalar)FEAT_SVE || FEAT_SME
00 100 INSR (scalar)FEAT_SVE || FEAT_SME
00 x1x UNALLOCATED-
00 != x00x01UNALLOCATED-
01 xx0 0 SVE move predicate from vector-
01 xx0 1 UNALLOCATED-
01 xx1 0 SVE move predicate into vector-
01 xx1 1 UNALLOCATED-
10 0xx SVE unpack vector elements-
10 100 INSR (SIMD&FP scalar)FEAT_SVE || FEAT_SME
10 101 UNALLOCATED-
10 11x UNALLOCATED-
11 000 REV (vector)FEAT_SVE || FEAT_SME
11 != 000 UNALLOCATED-

SVE move predicate from vector

The encodings in this section are decoded from SVE Permute Vector - Unpredicated.

313029282726252423222120191817161514131211109876543210
00000101opc101opc20001110Zn0Pd
Decode fields Instruction Details Feature
opcopc2
0000UNALLOCATED-
0001PMOV (to predicate)ByteFEAT_SVE2p1 || FEAT_SME2p1
001xPMOV (to predicate)HalfwordFEAT_SVE2p1 || FEAT_SME2p1
01PMOV (to predicate)WordFEAT_SVE2p1 || FEAT_SME2p1
1xPMOV (to predicate)DoublewordFEAT_SVE2p1 || FEAT_SME2p1

SVE move predicate into vector

The encodings in this section are decoded from SVE Permute Vector - Unpredicated.

313029282726252423222120191817161514131211109876543210
00000101opc101opc210011100PnZd
Decode fields Instruction Details Feature
opcopc2
0000UNALLOCATED-
0001PMOV (to vector)ByteFEAT_SVE2p1 || FEAT_SME2p1
001xPMOV (to vector)HalfwordFEAT_SVE2p1 || FEAT_SME2p1
01PMOV (to vector)WordFEAT_SVE2p1 || FEAT_SME2p1
1xPMOV (to vector)DoublewordFEAT_SVE2p1 || FEAT_SME2p1

SVE unpack vector elements

The encodings in this section are decoded from SVE Permute Vector - Unpredicated.

313029282726252423222120191817161514131211109876543210
00000101size1100UH001110ZnZd
Decode fields Instruction Details Feature
UH
00SUNPKHI, SUNPKLOLow halfFEAT_SVE || FEAT_SME
01SUNPKHI, SUNPKLOHigh halfFEAT_SVE || FEAT_SME
10UUNPKHI, UUNPKLOLow halfFEAT_SVE || FEAT_SME
11UUNPKHI, UUNPKLOHigh halfFEAT_SVE || FEAT_SME

SVE Permute Predicate

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
00000101op01op1010op2op3
Decode fields Instruction details Feature
op0op1op2op3
00 1000x 0000 0 SVE unpack predicate elements-
0xxxx xxx0 0 SVE permute predicate elements-
10100 0000 0 REV (predicate)FEAT_SVE || FEAT_SME
10101 0000 0 UNALLOCATED-
10x0x 0010 0 UNALLOCATED-
10x0x 01x0 0 UNALLOCATED-
10x0x 1xx0 0 UNALLOCATED-
10x1x xxx0 0 UNALLOCATED-
11xxx xxx0 0 UNALLOCATED-
xxx0 1 UNALLOCATED-
xxx1 UNALLOCATED-
!= 00 1000x 0000 0 UNALLOCATED-

SVE unpack predicate elements

The encodings in this section are decoded from SVE Permute Predicate.

313029282726252423222120191817161514131211109876543210
000001010011000H0100000Pn0Pd
Decode fields Instruction Details Feature
H
0PUNPKHI, PUNPKLOLow halfFEAT_SVE || FEAT_SME
1PUNPKHI, PUNPKLOHigh halfFEAT_SVE || FEAT_SME

SVE permute predicate elements

The encodings in this section are decoded from SVE Permute Predicate.

313029282726252423222120191817161514131211109876543210
00000101size10Pm010opcH0Pn0Pd
Decode fields Instruction Details Feature
opcH
000ZIP1, ZIP2 (predicates)Low halvesFEAT_SVE || FEAT_SME
001ZIP1, ZIP2 (predicates)High halvesFEAT_SVE || FEAT_SME
010UZP1, UZP2 (predicates)EvenFEAT_SVE || FEAT_SME
011UZP1, UZP2 (predicates)OddFEAT_SVE || FEAT_SME
100TRN1, TRN2 (predicates)EvenFEAT_SVE || FEAT_SME
101TRN1, TRN2 (predicates)OddFEAT_SVE || FEAT_SME
11UNALLOCATED-

SVE Permute Vector - Predicated

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
000001011op0op1op210op3
Decode fields Instruction details Feature
op0op1op2op3
0 000 0 0 CPY (SIMD&FP scalar)FEAT_SVE || FEAT_SME
0 000 1 0 SVE compress Active elements-
0 000 1 SVE extract element to general register-
0 001 1 1 UNALLOCATED-
0 001 0 SVE extract element to SIMD&FP scalar register-
0 01x SVE reverse within elements-
0 100 0 1 CPY (scalar)FEAT_SVE || FEAT_SME
0 100 0 SVE conditionally broadcast element to vector-
0 101 0 SVE conditionally extract element to SIMD&FP scalar-
0 110 0 0 SPLICEDestructiveFEAT_SVE || FEAT_SME
0 110 0 1 UNALLOCATED-
0 110 1 0 SPLICEConstructiveFEAT_SVE2 || FEAT_SME
0 111 0 SVE reverse doublewords-
0 111 1 0 UNALLOCATED-
0 1xx 1 1 UNALLOCATED-
0 x01 0 1 UNALLOCATED-
1 000 0 0 UNALLOCATED-
1 000 1 0 EXPANDFEAT_SVE2p2 || FEAT_SME2p2
1 000 1 SVE conditionally extract element to general register-
1 != 000 UNALLOCATED-

SVE compress Active elements

The encodings in this section are decoded from SVE Permute Vector - Predicated.

313029282726252423222120191817161514131211109876543210
00000101size100001100PgZnZd
Decode fields Instruction Details Feature
size
0xCOMPACTByte and halfwordFEAT_SVE2p2 || FEAT_SME2p2
1xCOMPACTWord and doublewordFEAT_SVE || FEAT_SME2p2

SVE extract element to general register

The encodings in this section are decoded from SVE Permute Vector - Predicated.

313029282726252423222120191817161514131211109876543210
00000101size10000B101PgZnRd
Decode fields Instruction Details Feature
B
0LASTA (scalar)FEAT_SVE || FEAT_SME
1LASTB (scalar)FEAT_SVE || FEAT_SME

SVE extract element to SIMD&FP scalar register

The encodings in this section are decoded from SVE Permute Vector - Predicated.

313029282726252423222120191817161514131211109876543210
00000101size10001B100PgZnVd
Decode fields Instruction Details Feature
B
0LASTA (SIMD&FP scalar)FEAT_SVE || FEAT_SME
1LASTB (SIMD&FP scalar)FEAT_SVE || FEAT_SME

SVE reverse within elements

The encodings in this section are decoded from SVE Permute Vector - Predicated.

313029282726252423222120191817161514131211109876543210
00000101size1001opc10ZPgZnZd
Decode fields Instruction Details Feature
opcZ
000REVB, REVH, REVWByte, mergingFEAT_SVE || FEAT_SME
001REVB, REVH, REVWByte, zeroingFEAT_SVE2p2 || FEAT_SME2p2
010REVB, REVH, REVWHalfword, mergingFEAT_SVE || FEAT_SME
011REVB, REVH, REVWHalfword, zeroingFEAT_SVE2p2 || FEAT_SME2p2
100REVB, REVH, REVWWord, mergingFEAT_SVE || FEAT_SME
101REVB, REVH, REVWWord, zeroingFEAT_SVE2p2 || FEAT_SME2p2
110RBITMergingFEAT_SVE || FEAT_SME
111RBITZeroingFEAT_SVE2p2 || FEAT_SME2p2

SVE conditionally broadcast element to vector

The encodings in this section are decoded from SVE Permute Vector - Predicated.

313029282726252423222120191817161514131211109876543210
00000101size10100B100PgZmZdn
Decode fields Instruction Details Feature
B
0CLASTA (vectors)FEAT_SVE || FEAT_SME
1CLASTB (vectors)FEAT_SVE || FEAT_SME

SVE conditionally extract element to SIMD&FP scalar

The encodings in this section are decoded from SVE Permute Vector - Predicated.

313029282726252423222120191817161514131211109876543210
00000101size10101B100PgZmVdn
Decode fields Instruction Details Feature
B
0CLASTA (SIMD&FP scalar)FEAT_SVE || FEAT_SME
1CLASTB (SIMD&FP scalar)FEAT_SVE || FEAT_SME

SVE reverse doublewords

The encodings in this section are decoded from SVE Permute Vector - Predicated.

313029282726252423222120191817161514131211109876543210
00000101size10111010ZPgZnZd
Decode fields Instruction Details Feature
sizeZ
000REVDMergingFEAT_SME || FEAT_SVE2p1
001REVDZeroingFEAT_SVE2p2 || FEAT_SME2p2
!= 00UNALLOCATED-

SVE conditionally extract element to general register

The encodings in this section are decoded from SVE Permute Vector - Predicated.

313029282726252423222120191817161514131211109876543210
00000101size11000B101PgZmRdn
Decode fields Instruction Details Feature
B
0CLASTA (scalar)FEAT_SVE || FEAT_SME
1CLASTB (scalar)FEAT_SVE || FEAT_SME

SVE Integer Compare - Vectors

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
001001000op0
Decode fields Instruction details
op0
0 SVE integer compare vectors
1 SVE integer compare with wide elements

SVE integer compare vectors

The encodings in this section are decoded from SVE Integer Compare - Vectors.

313029282726252423222120191817161514131211109876543210
00100100size0Zmop0o2PgZnnePd
Decode fields Instruction Details Feature
opo2ne
000CMP<cc> (vectors)Higher or sameFEAT_SVE || FEAT_SME
001CMP<cc> (vectors)HigherFEAT_SVE || FEAT_SME
010CMP<cc> (wide elements)EqualFEAT_SVE || FEAT_SME
011CMP<cc> (wide elements)Not equalFEAT_SVE || FEAT_SME
100CMP<cc> (vectors)Greater than or equalFEAT_SVE || FEAT_SME
101CMP<cc> (vectors)Greater thanFEAT_SVE || FEAT_SME
110CMP<cc> (vectors)EqualFEAT_SVE || FEAT_SME
111CMP<cc> (vectors)Not equalFEAT_SVE || FEAT_SME

SVE integer compare with wide elements

The encodings in this section are decoded from SVE Integer Compare - Vectors.

313029282726252423222120191817161514131211109876543210
00100100size0ZmU1ltPgZnnePd
Decode fields Instruction Details Feature
Ultne
000CMP<cc> (wide elements)Greater than or equalFEAT_SVE || FEAT_SME
001CMP<cc> (wide elements)Greater thanFEAT_SVE || FEAT_SME
010CMP<cc> (wide elements)Less thanFEAT_SVE || FEAT_SME
011CMP<cc> (wide elements)Less than or equalFEAT_SVE || FEAT_SME
100CMP<cc> (wide elements)Higher or sameFEAT_SVE || FEAT_SME
101CMP<cc> (wide elements)HigherFEAT_SVE || FEAT_SME
110CMP<cc> (wide elements)LowerFEAT_SVE || FEAT_SME
111CMP<cc> (wide elements)Lower or sameFEAT_SVE || FEAT_SME

SVE Propagate Break

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
001001010011op0
Decode fields Instruction details
op0
0 SVE propagate break from previous partition
1 UNALLOCATED

SVE propagate break from previous partition

The encodings in this section are decoded from SVE Propagate Break.

313029282726252423222120191817161514131211109876543210
00100101opS00Pm11Pg0PnBPd
Decode fields Instruction Details Feature
opSB
000BRKPAFEAT_SVE || FEAT_SME
001BRKPBFEAT_SVE || FEAT_SME
010BRKPASFEAT_SVE || FEAT_SME
011BRKPBSFEAT_SVE || FEAT_SME
1UNALLOCATED-

SVE Partition Break

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
00100101op001op101op2op3
Decode fields Instruction details
op0op1op2op3
0 1000 0 0 SVE propagate break to next partition
0 1000 0 1 UNALLOCATED
1 1000 0 UNALLOCATED
0000 0 SVE partition break condition
x000 1 UNALLOCATED
x01x UNALLOCATED
x1xx UNALLOCATED
!= x000x001UNALLOCATED

SVE propagate break to next partition

The encodings in this section are decoded from SVE Partition Break.

313029282726252423222120191817161514131211109876543210
001001010S01100001Pg0Pn0Pdm
Decode fields Instruction Details Feature
S
0BRKNFEAT_SVE || FEAT_SME
1BRKNSFEAT_SVE || FEAT_SME

SVE partition break condition

The encodings in this section are decoded from SVE Partition Break.

313029282726252423222120191817161514131211109876543210
00100101BS01000001Pg0PnMPd
Decode fields Instruction Details Feature
BSM
11UNALLOCATED-
00BRKAFEAT_SVE || FEAT_SME
010BRKASFEAT_SVE || FEAT_SME
10BRKBFEAT_SVE || FEAT_SME
110BRKBSFEAT_SVE || FEAT_SME

SVE Predicate Misc

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
0010010101op011op1op2op3op4
Decode fields Instruction details Feature
op0op1op2op3op4
0000 x0 0 SVE predicate test-
0000 x1 0 UNALLOCATED-
0001 0 UNALLOCATED-
1000 000 00 0 SVE predicate first active-
1000 000 10 0 UNALLOCATED-
1000 100 10 0000 0 SVE predicate zero-
1000 100 10 != 0000 0 UNALLOCATED-
1000 110 00 0 SVE predicate read from FFR (predicated)-
1001 000 00 0 UNALLOCATED-
1001 000 10 0 PNEXTFEAT_SVE || FEAT_SME
1001 100 10 0 UNALLOCATED-
1001 110 00 0000 0 SVE predicate read from FFR (unpredicated)-
1001 110 00 != 0000 0 UNALLOCATED-
100x 010 x0 0 UNALLOCATED-
100x 0x0 x1 0 UNALLOCATED-
100x 100 0x 0 SVE predicate initialize-
100x 100 11 0 UNALLOCATED-
100x 110 != 00 0 UNALLOCATED-
100x xx1 0 UNALLOCATED-
x00x 1 UNALLOCATED-
x1xx UNALLOCATED-
!= x00xx01xUNALLOCATED-

SVE predicate test

The encodings in this section are decoded from SVE Predicate Misc.

313029282726252423222120191817161514131211109876543210
00100101opS01000011Pg0Pn0opc2
Decode fields Instruction Details Feature
opSopc2
00UNALLOCATED-
010000PTESTFEAT_SVE || FEAT_SME
01!= 0000UNALLOCATED-
1UNALLOCATED-

SVE predicate first active

The encodings in this section are decoded from SVE Predicate Misc.

313029282726252423222120191817161514131211109876543210
00100101opS0110001100000Pg0Pdn
Decode fields Instruction Details Feature
opS
00UNALLOCATED-
01PFIRSTFEAT_SVE || FEAT_SME
1UNALLOCATED-

SVE predicate zero

The encodings in this section are decoded from SVE Predicate Misc.

313029282726252423222120191817161514131211109876543210
00100101opS011000111001000000Pd
Decode fields Instruction Details Feature
opS
00PFALSEFEAT_SVE || FEAT_SME
01UNALLOCATED-
1UNALLOCATED-

SVE predicate read from FFR (predicated)

The encodings in this section are decoded from SVE Predicate Misc.

313029282726252423222120191817161514131211109876543210
00100101opS0110001111000Pg0Pd
Decode fields Instruction Details Feature
opS
00RDFFR (predicated)FEAT_SVE
01RDFFRSFEAT_SVE
1UNALLOCATED-

SVE predicate read from FFR (unpredicated)

The encodings in this section are decoded from SVE Predicate Misc.

313029282726252423222120191817161514131211109876543210
00100101opS011001111100000000Pd
Decode fields Instruction Details Feature
opS
00RDFFR (unpredicated)FEAT_SVE
01UNALLOCATED-
1UNALLOCATED-

SVE predicate initialize

The encodings in this section are decoded from SVE Predicate Misc.

313029282726252423222120191817161514131211109876543210
00100101size01100S111000pattern0Pd
Decode fields Instruction Details Feature
S
0PTRUE (predicate)FEAT_SVE || FEAT_SME
1PTRUESFEAT_SVE || FEAT_SME

SVE Predicate Count

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
0010010110010op0op1
Decode fields Instruction details
op0op1
000 1 SVE predicate count (predicate-as-counter)
0 SVE predicate count
!= 000 1 UNALLOCATED

SVE predicate count (predicate-as-counter)

The encodings in this section are decoded from SVE Predicate Count.

313029282726252423222120191817161514131211109876543210
00100101size100opc10000vl1PNnRd
Decode fields Instruction Details Feature
opc
000CNTP (predicate as counter)FEAT_SME2 || FEAT_SVE2p1
!= 000UNALLOCATED-

SVE predicate count

The encodings in this section are decoded from SVE Predicate Count.

313029282726252423222120191817161514131211109876543210
00100101size100opc10Pg0PnRd
Decode fields Instruction Details Feature
opc
000CNTP (predicate)FEAT_SVE || FEAT_SME
001FIRSTPFEAT_SVE2p2 || FEAT_SME2p2
010LASTPFEAT_SVE2p2 || FEAT_SME2p2
011UNALLOCATED-
1xxUNALLOCATED-

SVE Inc/Dec by Predicate Count

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
00100101101op01000op1
Decode fields Instruction details
op0op1
0 0 SVE saturating inc/dec vector by predicate count
0 1 SVE saturating inc/dec register by predicate count
1 0 SVE inc/dec vector by predicate count
1 1 SVE inc/dec register by predicate count

SVE saturating inc/dec vector by predicate count

The encodings in this section are decoded from SVE Inc/Dec by Predicate Count.

313029282726252423222120191817161514131211109876543210
00100101size1010DU10000opcPmZdn
Decode fields Instruction Details Feature
DUopc
!= 00UNALLOCATED-
0000SQINCP (vector)FEAT_SVE || FEAT_SME
0100UQINCP (vector)FEAT_SVE || FEAT_SME
1000SQDECP (vector)FEAT_SVE || FEAT_SME
1100UQDECP (vector)FEAT_SVE || FEAT_SME

SVE saturating inc/dec register by predicate count

The encodings in this section are decoded from SVE Inc/Dec by Predicate Count.

313029282726252423222120191817161514131211109876543210
00100101size1010DU10001sfopPmRdn
Decode fields Instruction Details Feature
DUsfop
1UNALLOCATED-
0000SQINCP (scalar)32-bitFEAT_SVE || FEAT_SME
0010SQINCP (scalar)64-bitFEAT_SVE || FEAT_SME
0100UQINCP (scalar)32-bitFEAT_SVE || FEAT_SME
0110UQINCP (scalar)64-bitFEAT_SVE || FEAT_SME
1000SQDECP (scalar)32-bitFEAT_SVE || FEAT_SME
1010SQDECP (scalar)64-bitFEAT_SVE || FEAT_SME
1100UQDECP (scalar)32-bitFEAT_SVE || FEAT_SME
1110UQDECP (scalar)64-bitFEAT_SVE || FEAT_SME

SVE inc/dec vector by predicate count

The encodings in this section are decoded from SVE Inc/Dec by Predicate Count.

313029282726252423222120191817161514131211109876543210
00100101size1011opD10000opc2PmZdn
Decode fields Instruction Details Feature
opDopc2
0!= 00UNALLOCATED-
0000INCP (vector)FEAT_SVE || FEAT_SME
0100DECP (vector)FEAT_SVE || FEAT_SME
1UNALLOCATED-

SVE inc/dec register by predicate count

The encodings in this section are decoded from SVE Inc/Dec by Predicate Count.

313029282726252423222120191817161514131211109876543210
00100101size1011opD10001opc2PmRdn
Decode fields Instruction Details Feature
opDopc2
0!= 00UNALLOCATED-
0000INCP (scalar)FEAT_SVE || FEAT_SME
0100DECP (scalar)FEAT_SVE || FEAT_SME
1UNALLOCATED-

SVE Write FFR

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
00100101101op0op11001op2op3op4
Decode fields Instruction details
op0op1op2op3op4
0 00 000 00000 SVE FFR write from predicate
1 00 000 0000 00000 SVE FFR initialise
1 00 000 != 0000 00000 UNALLOCATED
00 000 != 00000 UNALLOCATED
00 != 000 UNALLOCATED
!= 00 UNALLOCATED

SVE FFR write from predicate

The encodings in this section are decoded from SVE Write FFR.

313029282726252423222120191817161514131211109876543210
00100101opc1010001001000Pn00000
Decode fields Instruction Details Feature
opc
00WRFFRFEAT_SVE
!= 00UNALLOCATED-

SVE FFR initialise

The encodings in this section are decoded from SVE Write FFR.

313029282726252423222120191817161514131211109876543210
00100101opc1011001001000000000000
Decode fields Instruction Details Feature
opc
00SETFFRFEAT_SVE
!= 00UNALLOCATED-

SVE Integer Compare - Scalars

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
00100101100op0op1op2
Decode fields Instruction details
op0op1op2
0x SVE integer compare scalar count and limit
10 00 0000 SVE conditionally terminate scalars
10 00 != 0000 UNALLOCATED
11 00 SVE pointer conflict compare
1x != 00 UNALLOCATED

SVE integer compare scalar count and limit

The encodings in this section are decoded from SVE Integer Compare - Scalars.

313029282726252423222120191817161514131211109876543210
00100101size1Rm000sfUltRneqPd
Decode fields Instruction Details Feature
Ulteq
000WHILEGE (predicate)FEAT_SVE2 || FEAT_SME
001WHILEGT (predicate)FEAT_SVE2 || FEAT_SME
010WHILELT (predicate)FEAT_SVE || FEAT_SME
011WHILELE (predicate)FEAT_SVE || FEAT_SME
100WHILEHS (predicate)FEAT_SVE2 || FEAT_SME
101WHILEHI (predicate)FEAT_SVE2 || FEAT_SME
110WHILELO (predicate)FEAT_SVE || FEAT_SME
111WHILELS (predicate)FEAT_SVE || FEAT_SME

SVE conditionally terminate scalars

The encodings in this section are decoded from SVE Integer Compare - Scalars.

313029282726252423222120191817161514131211109876543210
00100101opsz1Rm001000Rnne0000
Decode fields Instruction Details Feature
opne
0UNALLOCATED-
10CTERMEQ, CTERMNEEqualFEAT_SVE || FEAT_SME
11CTERMEQ, CTERMNENot equalFEAT_SVE || FEAT_SME

SVE pointer conflict compare

The encodings in this section are decoded from SVE Integer Compare - Scalars.

313029282726252423222120191817161514131211109876543210
00100101size1Rm001100RnrwPd
Decode fields Instruction Details Feature
rw
0WHILEWRFEAT_SVE2 || FEAT_SME
1WHILERWFEAT_SVE2 || FEAT_SME

SVE Scalar Integer Compare - Predicate-as-counter

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
001001011op001op1op21op3
Decode fields Instruction details Feature
op0op1op2op3
00000 110 SVE extract mask predicate from predicate-as-counter-
00000 111 000000 0 PTRUE (predicate as counter)FEAT_SME2 || FEAT_SVE2p1
00000 111 000000 1 UNALLOCATED-
00000 111 != 000000 UNALLOCATED-
01x SVE integer compare scalar count and limit (predicate pair)-
x0x SVE integer compare scalar count and limit (predicate-as-counter)-
!= 00000 11x UNALLOCATED-

SVE extract mask predicate from predicate-as-counter

The encodings in this section are decoded from SVE Scalar Integer Compare - Predicate-as-counter.

313029282726252423222120191817161514131211109876543210
00100101size10000001110opcPNn1Pd
Decode fields Instruction Details Feature
opc
0xxPEXT (predicate)FEAT_SME2 || FEAT_SVE2p1
10xPEXT (predicate pair)FEAT_SME2 || FEAT_SVE2p1
11xUNALLOCATED-

SVE integer compare scalar count and limit (predicate pair)

The encodings in this section are decoded from SVE Scalar Integer Compare - Predicate-as-counter.

313029282726252423222120191817161514131211109876543210
00100101size1Rm0101UltRn1Pdeq
Decode fields Instruction Details Feature
Ulteq
000WHILEGE (predicate pair)FEAT_SME2 || FEAT_SVE2p1
001WHILEGT (predicate pair)FEAT_SME2 || FEAT_SVE2p1
010WHILELT (predicate pair)FEAT_SME2 || FEAT_SVE2p1
011WHILELE (predicate pair)FEAT_SME2 || FEAT_SVE2p1
100WHILEHS (predicate pair)FEAT_SME2 || FEAT_SVE2p1
101WHILEHI (predicate pair)FEAT_SME2 || FEAT_SVE2p1
110WHILELO (predicate pair)FEAT_SME2 || FEAT_SVE2p1
111WHILELS (predicate pair)FEAT_SME2 || FEAT_SVE2p1

SVE integer compare scalar count and limit (predicate-as-counter)

The encodings in this section are decoded from SVE Scalar Integer Compare - Predicate-as-counter.

313029282726252423222120191817161514131211109876543210
00100101size1Rm01vl0UltRn1eqPNd
Decode fields Instruction Details Feature
Ulteq
000WHILEGE (predicate as counter)FEAT_SME2 || FEAT_SVE2p1
001WHILEGT (predicate as counter)FEAT_SME2 || FEAT_SVE2p1
010WHILELT (predicate as counter)FEAT_SME2 || FEAT_SVE2p1
011WHILELE (predicate as counter)FEAT_SME2 || FEAT_SVE2p1
100WHILEHS (predicate as counter)FEAT_SME2 || FEAT_SVE2p1
101WHILEHI (predicate as counter)FEAT_SME2 || FEAT_SVE2p1
110WHILELO (predicate as counter)FEAT_SME2 || FEAT_SVE2p1
111WHILELS (predicate as counter)FEAT_SME2 || FEAT_SVE2p1

SVE Integer Wide Immediate - Unpredicated

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
001001011op0op111
Decode fields Instruction details
op0op1
00 SVE integer add/subtract immediate (unpredicated)
01 SVE integer min/max immediate (unpredicated)
10 SVE integer multiply immediate (unpredicated)
11 0 SVE broadcast integer immediate (unpredicated)
11 1 SVE broadcast floating-point immediate (unpredicated)

SVE integer add/subtract immediate (unpredicated)

The encodings in this section are decoded from SVE Integer Wide Immediate - Unpredicated.

313029282726252423222120191817161514131211109876543210
00100101size100opc11shimm8Zdn
Decode fields Instruction Details Feature
opc
000ADD (immediate)FEAT_SVE || FEAT_SME
001SUB (immediate)FEAT_SVE || FEAT_SME
010UNALLOCATED-
011SUBR (immediate)FEAT_SVE || FEAT_SME
100SQADD (immediate)FEAT_SVE || FEAT_SME
101UQADD (immediate)FEAT_SVE || FEAT_SME
110SQSUB (immediate)FEAT_SVE || FEAT_SME
111UQSUB (immediate)FEAT_SVE || FEAT_SME

SVE integer min/max immediate (unpredicated)

The encodings in this section are decoded from SVE Integer Wide Immediate - Unpredicated.

313029282726252423222120191817161514131211109876543210
00100101size101opc11o2imm8Zdn
Decode fields Instruction Details Feature
opco2
0xx1UNALLOCATED-
0000SMAX (immediate)FEAT_SVE || FEAT_SME
0010UMAX (immediate)FEAT_SVE || FEAT_SME
0100SMIN (immediate)FEAT_SVE || FEAT_SME
0110UMIN (immediate)FEAT_SVE || FEAT_SME
1xxUNALLOCATED-

SVE integer multiply immediate (unpredicated)

The encodings in this section are decoded from SVE Integer Wide Immediate - Unpredicated.

313029282726252423222120191817161514131211109876543210
00100101size110opc11o2imm8Zdn
Decode fields Instruction Details Feature
opco2
0000MUL (immediate)FEAT_SVE || FEAT_SME
0001UNALLOCATED-
!= 000UNALLOCATED-

SVE broadcast integer immediate (unpredicated)

The encodings in this section are decoded from SVE Integer Wide Immediate - Unpredicated.

313029282726252423222120191817161514131211109876543210
00100101size111opc011shimm8Zd
Decode fields Instruction Details Feature
opc
00DUP (immediate)FEAT_SVE || FEAT_SME
!= 00UNALLOCATED-

SVE broadcast floating-point immediate (unpredicated)

The encodings in this section are decoded from SVE Integer Wide Immediate - Unpredicated.

313029282726252423222120191817161514131211109876543210
00100101size111opc111o2imm8Zd
Decode fields Instruction Details Feature
opco2
000FDUPFEAT_SVE || FEAT_SME
001UNALLOCATED-
!= 00UNALLOCATED-

SVE Integer Multiply-Add - Unpredicated

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
0100010000op0
Decode fields Instruction details Feature
op0
0000x SVE integer dot product (unpredicated)-
0001x SVE2 saturating multiply-add interleaved long-
001xx CDOT (vectors)FEAT_SVE2 || FEAT_SME
01xxx SVE2 complex integer multiply-add-
10xxx SVE2 integer multiply-add long-
110xx SVE2 saturating multiply-add long-
1110x SVE2 saturating multiply-add high-
11110 SVE mixed sign dot product-
11111 UNALLOCATED-

SVE integer dot product (unpredicated)

The encodings in this section are decoded from SVE Integer Multiply-Add - Unpredicated.

313029282726252423222120191817161514131211109876543210
01000100size0Zm00000UZnZda
Decode fields Instruction Details Feature
sizeU
00UNALLOCATED-
010SDOT (2-way, vectors)FEAT_SVE2p3 || FEAT_SME2p3
011UDOT (2-way, vectors)FEAT_SVE2p3 || FEAT_SME2p3
1x0SDOT (4-way, vectors)FEAT_SVE || FEAT_SME
1x1UDOT (4-way, vectors)FEAT_SVE || FEAT_SME

SVE2 saturating multiply-add interleaved long

The encodings in this section are decoded from SVE Integer Multiply-Add - Unpredicated.

313029282726252423222120191817161514131211109876543210
01000100size0Zm00001SZnZda
Decode fields Instruction Details Feature
S
0SQDMLALBTFEAT_SVE2 || FEAT_SME
1SQDMLSLBTFEAT_SVE2 || FEAT_SME

SVE2 complex integer multiply-add

The encodings in this section are decoded from SVE Integer Multiply-Add - Unpredicated.

313029282726252423222120191817161514131211109876543210
01000100size0Zm001oprotZnZda
Decode fields Instruction Details Feature
op
0CMLA (vectors)FEAT_SVE2 || FEAT_SME
1SQRDCMLAH (vectors)FEAT_SVE2 || FEAT_SME

SVE2 integer multiply-add long

The encodings in this section are decoded from SVE Integer Multiply-Add - Unpredicated.

313029282726252423222120191817161514131211109876543210
01000100size0Zm010SUTZnZda
Decode fields Instruction Details Feature
SUT
000SMLALB (vectors)FEAT_SVE2 || FEAT_SME
001SMLALT (vectors)FEAT_SVE2 || FEAT_SME
010UMLALB (vectors)FEAT_SVE2 || FEAT_SME
011UMLALT (vectors)FEAT_SVE2 || FEAT_SME
100SMLSLB (vectors)FEAT_SVE2 || FEAT_SME
101SMLSLT (vectors)FEAT_SVE2 || FEAT_SME
110UMLSLB (vectors)FEAT_SVE2 || FEAT_SME
111UMLSLT (vectors)FEAT_SVE2 || FEAT_SME

SVE2 saturating multiply-add long

The encodings in this section are decoded from SVE Integer Multiply-Add - Unpredicated.

313029282726252423222120191817161514131211109876543210
01000100size0Zm0110STZnZda
Decode fields Instruction Details Feature
ST
00SQDMLALB (vectors)FEAT_SVE2 || FEAT_SME
01SQDMLALT (vectors)FEAT_SVE2 || FEAT_SME
10SQDMLSLB (vectors)FEAT_SVE2 || FEAT_SME
11SQDMLSLT (vectors)FEAT_SVE2 || FEAT_SME

SVE2 saturating multiply-add high

The encodings in this section are decoded from SVE Integer Multiply-Add - Unpredicated.

313029282726252423222120191817161514131211109876543210
01000100size0Zm01110SZnZda
Decode fields Instruction Details Feature
S
0SQRDMLAH (vectors)FEAT_SVE2 || FEAT_SME
1SQRDMLSH (vectors)FEAT_SVE2 || FEAT_SME

SVE mixed sign dot product

The encodings in this section are decoded from SVE Integer Multiply-Add - Unpredicated.

313029282726252423222120191817161514131211109876543210
01000100size0Zm011110ZnZda
Decode fields Instruction Details Feature
size
10USDOT (vectors)(FEAT_SVE && FEAT_I8MM) || (FEAT_SME && FEAT_I8MM)
!= 10UNALLOCATED-

SVE2 Integer - Predicated

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
010001000op010op1
Decode fields Instruction details
op0op1
0010 1 SVE2 integer pairwise add and accumulate long
0011 1 UNALLOCATED
011x 1 UNALLOCATED
0x0x 1 SVE2 integer unary operations (predicated)
0xxx 0 SVE2 saturating/rounding bitwise shift left (predicated)
10xx 0 SVE2 integer halving add/subtract (predicated)
10xx 1 SVE2 integer pairwise arithmetic
11xx 0 SVE2 saturating add/subtract
11xx 1 UNALLOCATED

SVE2 integer pairwise add and accumulate long

The encodings in this section are decoded from SVE2 Integer - Predicated.

313029282726252423222120191817161514131211109876543210
01000100size00010U101PgZnZda
Decode fields Instruction Details Feature
U
0SADALPFEAT_SVE2 || FEAT_SME
1UADALPFEAT_SVE2 || FEAT_SME

SVE2 integer unary operations (predicated)

The encodings in this section are decoded from SVE2 Integer - Predicated.

313029282726252423222120191817161514131211109876543210
01000100size00Q0Zop101PgZnZd
Decode fields Instruction Details Feature
QZop
000URECPEMergingFEAT_SVE2 || FEAT_SME
001URSQRTEMergingFEAT_SVE2 || FEAT_SME
010URECPEZeroingFEAT_SVE2p2 || FEAT_SME2p2
011URSQRTEZeroingFEAT_SVE2p2 || FEAT_SME2p2
100SQABSMergingFEAT_SVE2 || FEAT_SME
101SQNEGMergingFEAT_SVE2 || FEAT_SME
110SQABSZeroingFEAT_SVE2p2 || FEAT_SME2p2
111SQNEGZeroingFEAT_SVE2p2 || FEAT_SME2p2

SVE2 saturating/rounding bitwise shift left (predicated)

The encodings in this section are decoded from SVE2 Integer - Predicated.

313029282726252423222120191817161514131211109876543210
01000100size00QRNU100PgZmZdn
Decode fields Instruction Details Feature
QRNU
00UNALLOCATED-
0010SRSHLFEAT_SVE2 || FEAT_SME
0011URSHLFEAT_SVE2 || FEAT_SME
0110SRSHLRFEAT_SVE2 || FEAT_SME
0111URSHLRFEAT_SVE2 || FEAT_SME
1000SQSHL (vectors)FEAT_SVE2 || FEAT_SME
1001UQSHL (vectors)FEAT_SVE2 || FEAT_SME
1010SQRSHLFEAT_SVE2 || FEAT_SME
1011UQRSHLFEAT_SVE2 || FEAT_SME
1100SQSHLRFEAT_SVE2 || FEAT_SME
1101UQSHLRFEAT_SVE2 || FEAT_SME
1110SQRSHLRFEAT_SVE2 || FEAT_SME
1111UQRSHLRFEAT_SVE2 || FEAT_SME

SVE2 integer halving add/subtract (predicated)

The encodings in this section are decoded from SVE2 Integer - Predicated.

313029282726252423222120191817161514131211109876543210
01000100size010RSU100PgZmZdn
Decode fields Instruction Details Feature
RSU
000SHADDFEAT_SVE2 || FEAT_SME
001UHADDFEAT_SVE2 || FEAT_SME
010SHSUBFEAT_SVE2 || FEAT_SME
011UHSUBFEAT_SVE2 || FEAT_SME
100SRHADDFEAT_SVE2 || FEAT_SME
101URHADDFEAT_SVE2 || FEAT_SME
110SHSUBRFEAT_SVE2 || FEAT_SME
111UHSUBRFEAT_SVE2 || FEAT_SME

SVE2 integer pairwise arithmetic

The encodings in this section are decoded from SVE2 Integer - Predicated.

313029282726252423222120191817161514131211109876543210
01000100size010opcU101PgZmZdn
Decode fields Instruction Details Feature
opcU
000SUBPFEAT_SVE2p3 || FEAT_SME2p3
001ADDPFEAT_SVE2 || FEAT_SME
01UNALLOCATED-
100SMAXPFEAT_SVE2 || FEAT_SME
101UMAXPFEAT_SVE2 || FEAT_SME
110SMINPFEAT_SVE2 || FEAT_SME
111UMINPFEAT_SVE2 || FEAT_SME

SVE2 saturating add/subtract

The encodings in this section are decoded from SVE2 Integer - Predicated.

313029282726252423222120191817161514131211109876543210
01000100size011opSU100PgZmZdn
Decode fields Instruction Details Feature
opSU
000SQADD (vectors, predicated)FEAT_SVE2 || FEAT_SME
001UQADD (vectors, predicated)FEAT_SVE2 || FEAT_SME
010SQSUB (vectors, predicated)FEAT_SVE2 || FEAT_SME
011UQSUB (vectors, predicated)FEAT_SVE2 || FEAT_SME
100SUQADDFEAT_SVE2 || FEAT_SME
101USQADDFEAT_SVE2 || FEAT_SME
110SQSUBRFEAT_SVE2 || FEAT_SME
111UQSUBRFEAT_SVE2 || FEAT_SME

SVE Multiply - Indexed

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
010001001op0
Decode fields Instruction details
op0
00000x SVE integer dot product (indexed)
00001x SVE2 integer multiply-add (indexed)
00010x SVE2 saturating multiply-add high (indexed)
00011x SVE mixed sign dot product (indexed)
001xxx SVE2 saturating multiply-add (indexed)
0100xx SVE2 complex integer dot product (indexed)
0101xx UNALLOCATED
0110xx SVE2 complex integer multiply-add (indexed)
0111xx SVE2 complex saturating multiply-add (indexed)
10xxxx SVE2 integer multiply-add long (indexed)
110xxx SVE2 integer multiply long (indexed)
1110xx SVE2 saturating multiply (indexed)
11110x SVE2 saturating multiply high (indexed)
111110 SVE2 integer multiply (indexed)
111111 UNALLOCATED

SVE integer dot product (indexed)

The encodings in this section are decoded from SVE Multiply - Indexed.

313029282726252423222120191817161514131211109876543210
01000100size1opc00000UZnZda
Decode fields Instruction Details Feature
sizeU
0x0SDOT (2-way, indexed)FEAT_SVE2p3 || FEAT_SME2p3
0x1UDOT (2-way, indexed)FEAT_SVE2p3 || FEAT_SME2p3
100SDOT (4-way, indexed)8-bit to 32-bitFEAT_SVE || FEAT_SME
101UDOT (4-way, indexed)8-bit to 32-bitFEAT_SVE || FEAT_SME
110SDOT (4-way, indexed)16-bit to 64-bitFEAT_SVE || FEAT_SME
111UDOT (4-way, indexed)16-bit to 64-bitFEAT_SVE || FEAT_SME

SVE2 integer multiply-add (indexed)

The encodings in this section are decoded from SVE Multiply - Indexed.

313029282726252423222120191817161514131211109876543210
01000100size1opc00001SZnZda
Decode fields Instruction Details Feature
sizeS
0x0MLA (indexed)16-bitFEAT_SVE2 || FEAT_SME
0x1MLS (indexed)16-bitFEAT_SVE2 || FEAT_SME
100MLA (indexed)32-bitFEAT_SVE2 || FEAT_SME
101MLS (indexed)32-bitFEAT_SVE2 || FEAT_SME
110MLA (indexed)64-bitFEAT_SVE2 || FEAT_SME
111MLS (indexed)64-bitFEAT_SVE2 || FEAT_SME

SVE2 saturating multiply-add high (indexed)

The encodings in this section are decoded from SVE Multiply - Indexed.

313029282726252423222120191817161514131211109876543210
01000100size1opc00010SZnZda
Decode fields Instruction Details Feature
sizeS
0x0SQRDMLAH (indexed)16-bitFEAT_SVE2 || FEAT_SME
0x1SQRDMLSH (indexed)16-bitFEAT_SVE2 || FEAT_SME
100SQRDMLAH (indexed)32-bitFEAT_SVE2 || FEAT_SME
101SQRDMLSH (indexed)32-bitFEAT_SVE2 || FEAT_SME
110SQRDMLAH (indexed)64-bitFEAT_SVE2 || FEAT_SME
111SQRDMLSH (indexed)64-bitFEAT_SVE2 || FEAT_SME

SVE mixed sign dot product (indexed)

The encodings in this section are decoded from SVE Multiply - Indexed.

313029282726252423222120191817161514131211109876543210
01000100size1opc00011UZnZda
Decode fields Instruction Details Feature
sizeU
100USDOT (indexed)(FEAT_SVE && FEAT_I8MM) || (FEAT_SME && FEAT_I8MM)
101SUDOT(FEAT_SVE && FEAT_I8MM) || (FEAT_SME && FEAT_I8MM)
!= 10UNALLOCATED-

SVE2 saturating multiply-add (indexed)

The encodings in this section are decoded from SVE Multiply - Indexed.

313029282726252423222120191817161514131211109876543210
01000100size1opc001SilTZnZda
Decode fields Instruction Details Feature
sizeST
0xUNALLOCATED-
1000SQDMLALB (indexed)32-bitFEAT_SVE2 || FEAT_SME
1001SQDMLALT (indexed)32-bitFEAT_SVE2 || FEAT_SME
1010SQDMLSLB (indexed)32-bitFEAT_SVE2 || FEAT_SME
1011SQDMLSLT (indexed)32-bitFEAT_SVE2 || FEAT_SME
1100SQDMLALB (indexed)64-bitFEAT_SVE2 || FEAT_SME
1101SQDMLALT (indexed)64-bitFEAT_SVE2 || FEAT_SME
1110SQDMLSLB (indexed)64-bitFEAT_SVE2 || FEAT_SME
1111SQDMLSLT (indexed)64-bitFEAT_SVE2 || FEAT_SME

SVE2 complex integer dot product (indexed)

The encodings in this section are decoded from SVE Multiply - Indexed.

313029282726252423222120191817161514131211109876543210
01000100size1opc0100rotZnZda
Decode fields Instruction Details Feature
size
0xUNALLOCATED-
10CDOT (indexed)8-bit to 32-bitFEAT_SVE2 || FEAT_SME
11CDOT (indexed)16-bit to 64-bitFEAT_SVE2 || FEAT_SME

SVE2 complex integer multiply-add (indexed)

The encodings in this section are decoded from SVE Multiply - Indexed.

313029282726252423222120191817161514131211109876543210
01000100size1opc0110rotZnZda
Decode fields Instruction Details Feature
size
0xUNALLOCATED-
10CMLA (indexed)16-bitFEAT_SVE2 || FEAT_SME
11CMLA (indexed)32-bitFEAT_SVE2 || FEAT_SME

SVE2 complex saturating multiply-add (indexed)

The encodings in this section are decoded from SVE Multiply - Indexed.

313029282726252423222120191817161514131211109876543210
01000100size1opc0111rotZnZda
Decode fields Instruction Details Feature
size
0xUNALLOCATED-
10SQRDCMLAH (indexed)16-bitFEAT_SVE2 || FEAT_SME
11SQRDCMLAH (indexed)32-bitFEAT_SVE2 || FEAT_SME

SVE2 integer multiply-add long (indexed)

The encodings in this section are decoded from SVE Multiply - Indexed.

313029282726252423222120191817161514131211109876543210
01000100size1opc10SUilTZnZda
Decode fields Instruction Details Feature
sizeSUT
0xUNALLOCATED-
10000SMLALB (indexed)32-bitFEAT_SVE2 || FEAT_SME
10001SMLALT (indexed)32-bitFEAT_SVE2 || FEAT_SME
10010UMLALB (indexed)32-bitFEAT_SVE2 || FEAT_SME
10011UMLALT (indexed)32-bitFEAT_SVE2 || FEAT_SME
10100SMLSLB (indexed)32-bitFEAT_SVE2 || FEAT_SME
10101SMLSLT (indexed)32-bitFEAT_SVE2 || FEAT_SME
10110UMLSLB (indexed)32-bitFEAT_SVE2 || FEAT_SME
10111UMLSLT (indexed)32-bitFEAT_SVE2 || FEAT_SME
11000SMLALB (indexed)64-bitFEAT_SVE2 || FEAT_SME
11001SMLALT (indexed)64-bitFEAT_SVE2 || FEAT_SME
11010UMLALB (indexed)64-bitFEAT_SVE2 || FEAT_SME
11011UMLALT (indexed)64-bitFEAT_SVE2 || FEAT_SME
11100SMLSLB (indexed)64-bitFEAT_SVE2 || FEAT_SME
11101SMLSLT (indexed)64-bitFEAT_SVE2 || FEAT_SME
11110UMLSLB (indexed)64-bitFEAT_SVE2 || FEAT_SME
11111UMLSLT (indexed)64-bitFEAT_SVE2 || FEAT_SME

SVE2 integer multiply long (indexed)

The encodings in this section are decoded from SVE Multiply - Indexed.

313029282726252423222120191817161514131211109876543210
01000100size1opc110UilTZnZd
Decode fields Instruction Details Feature
sizeUT
0xUNALLOCATED-
1000SMULLB (indexed)32-bitFEAT_SVE2 || FEAT_SME
1001SMULLT (indexed)32-bitFEAT_SVE2 || FEAT_SME
1010UMULLB (indexed)32-bitFEAT_SVE2 || FEAT_SME
1011UMULLT (indexed)32-bitFEAT_SVE2 || FEAT_SME
1100SMULLB (indexed)64-bitFEAT_SVE2 || FEAT_SME
1101SMULLT (indexed)64-bitFEAT_SVE2 || FEAT_SME
1110UMULLB (indexed)64-bitFEAT_SVE2 || FEAT_SME
1111UMULLT (indexed)64-bitFEAT_SVE2 || FEAT_SME

SVE2 saturating multiply (indexed)

The encodings in this section are decoded from SVE Multiply - Indexed.

313029282726252423222120191817161514131211109876543210
01000100size1opc1110ilTZnZd
Decode fields Instruction Details Feature
sizeT
0xUNALLOCATED-
100SQDMULLB (indexed)32-bitFEAT_SVE2 || FEAT_SME
101SQDMULLT (indexed)32-bitFEAT_SVE2 || FEAT_SME
110SQDMULLB (indexed)64-bitFEAT_SVE2 || FEAT_SME
111SQDMULLT (indexed)64-bitFEAT_SVE2 || FEAT_SME

SVE2 saturating multiply high (indexed)

The encodings in this section are decoded from SVE Multiply - Indexed.

313029282726252423222120191817161514131211109876543210
01000100size1opc11110RZnZd
Decode fields Instruction Details Feature
sizeR
0x0SQDMULH (indexed)16-bitFEAT_SVE2 || FEAT_SME
0x1SQRDMULH (indexed)16-bitFEAT_SVE2 || FEAT_SME
100SQDMULH (indexed)32-bitFEAT_SVE2 || FEAT_SME
101SQRDMULH (indexed)32-bitFEAT_SVE2 || FEAT_SME
110SQDMULH (indexed)64-bitFEAT_SVE2 || FEAT_SME
111SQRDMULH (indexed)64-bitFEAT_SVE2 || FEAT_SME

SVE2 integer multiply (indexed)

The encodings in this section are decoded from SVE Multiply - Indexed.

313029282726252423222120191817161514131211109876543210
01000100size1opc111110ZnZd
Decode fields Instruction Details Feature
size
0xMUL (indexed)16-bitFEAT_SVE2 || FEAT_SME
10MUL (indexed)32-bitFEAT_SVE2 || FEAT_SME
11MUL (indexed)64-bitFEAT_SVE2 || FEAT_SME

SVE2 Widening Integer Arithmetic

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
0100010100op0
Decode fields Instruction details
op0
0x SVE2 integer add/subtract long
10 SVE2 integer add/subtract wide
11 SVE2 integer multiply long

SVE2 integer add/subtract long

The encodings in this section are decoded from SVE2 Widening Integer Arithmetic.

313029282726252423222120191817161514131211109876543210
01000101size0Zm00opSUTZnopc
Decode fields Instruction Details Feature
opSUT
0000SADDLBFEAT_SVE2 || FEAT_SME
0001SADDLTFEAT_SVE2 || FEAT_SME
0010UADDLBFEAT_SVE2 || FEAT_SME
0011UADDLTFEAT_SVE2 || FEAT_SME
0100SSUBLBFEAT_SVE2 || FEAT_SME
0101SSUBLTFEAT_SVE2 || FEAT_SME
0110USUBLBFEAT_SVE2 || FEAT_SME
0111USUBLTFEAT_SVE2 || FEAT_SME
10UNALLOCATED-
1100SABDLBFEAT_SVE2 || FEAT_SME
1101SABDLTFEAT_SVE2 || FEAT_SME
1110UABDLBFEAT_SVE2 || FEAT_SME
1111UABDLTFEAT_SVE2 || FEAT_SME

SVE2 integer add/subtract wide

The encodings in this section are decoded from SVE2 Widening Integer Arithmetic.

313029282726252423222120191817161514131211109876543210
01000101size0Zm010SUTZnZd
Decode fields Instruction Details Feature
SUT
000SADDWBFEAT_SVE2 || FEAT_SME
001SADDWTFEAT_SVE2 || FEAT_SME
010UADDWBFEAT_SVE2 || FEAT_SME
011UADDWTFEAT_SVE2 || FEAT_SME
100SSUBWBFEAT_SVE2 || FEAT_SME
101SSUBWTFEAT_SVE2 || FEAT_SME
110USUBWBFEAT_SVE2 || FEAT_SME
111USUBWTFEAT_SVE2 || FEAT_SME

SVE2 integer multiply long

The encodings in this section are decoded from SVE2 Widening Integer Arithmetic.

313029282726252423222120191817161514131211109876543210
01000101size0Zm011opUTZnZd
Decode fields Instruction Details Feature
sizeopUT
000SQDMULLB (vectors)FEAT_SVE2 || FEAT_SME
001SQDMULLT (vectors)FEAT_SVE2 || FEAT_SME
100SMULLB (vectors)FEAT_SVE2 || FEAT_SME
101SMULLT (vectors)FEAT_SVE2 || FEAT_SME
110UMULLB (vectors)FEAT_SVE2 || FEAT_SME
111UMULLT (vectors)FEAT_SVE2 || FEAT_SME
00010PMULLB128-bit elementFEAT_SVE_PMULL128
00011PMULLT128-bit elementFEAT_SVE_PMULL128
!= 00010PMULLB16-bit or 64-bit elementsFEAT_SVE2 || FEAT_SME
!= 00011PMULLT16-bit or 64-bit elementsFEAT_SVE2 || FEAT_SME

SVE Misc

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
01000101op0010op1
Decode fields Instruction details
op0op1
0 10xx SVE2 bitwise shift left long
1 10xx UNALLOCATED
00xx SVE2 integer add/subtract interleaved long
010x SVE2 bitwise exclusive-OR interleaved
0110 SVE integer matrix multiply accumulate
0111 UNALLOCATED
11xx SVE2 bitwise permute

SVE2 bitwise shift left long

The encodings in this section are decoded from SVE Misc.

313029282726252423222120191817161514131211109876543210
010001010tszh0tszlimm31010UTZnZd
Decode fields Instruction Details Feature
UT
00SSHLLBFEAT_SVE2 || FEAT_SME
01SSHLLTFEAT_SVE2 || FEAT_SME
10USHLLBFEAT_SVE2 || FEAT_SME
11USHLLTFEAT_SVE2 || FEAT_SME

SVE2 integer add/subtract interleaved long

The encodings in this section are decoded from SVE Misc.

313029282726252423222120191817161514131211109876543210
01000101size0Zm1000StbZnZd
Decode fields Instruction Details Feature
Stb
00SADDLBTFEAT_SVE2 || FEAT_SME
01UNALLOCATED-
10SSUBLBTFEAT_SVE2 || FEAT_SME
11SSUBLTBFEAT_SVE2 || FEAT_SME

SVE2 bitwise exclusive-OR interleaved

The encodings in this section are decoded from SVE Misc.

313029282726252423222120191817161514131211109876543210
01000101size0Zm10010tbZnZd
Decode fields Instruction Details Feature
tb
0EORBTFEAT_SVE2 || FEAT_SME
1EORTBFEAT_SVE2 || FEAT_SME

SVE integer matrix multiply accumulate

The encodings in this section are decoded from SVE Misc.

313029282726252423222120191817161514131211109876543210
01000101uns0Zm100110ZnZd
Decode fields Instruction Details Feature
uns
00SMMLAFEAT_SVE && FEAT_I8MM
01UNALLOCATED-
10USMMLAFEAT_SVE && FEAT_I8MM
11UMMLAFEAT_SVE && FEAT_I8MM

SVE2 bitwise permute

The encodings in this section are decoded from SVE Misc.

313029282726252423222120191817161514131211109876543210
01000101size0Zm1011opcZnZd
Decode fields Instruction Details Feature
opc
00BEXTFEAT_SVE_BitPerm
01BDEPFEAT_SVE_BitPerm
10BGRPFEAT_SVE_BitPerm
11UNALLOCATED-

SVE2 Accumulate

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
010001010op011op1
Decode fields Instruction details
op0op1
0000 011 SVE2 complex integer add
00x SVE2 integer absolute difference and accumulate long
010 SVE2 integer add/subtract long with carry
10x SVE2 bitwise shift right and accumulate
110 SVE2 bitwise shift and insert
111 SVE2 integer absolute difference and accumulate
!= 0000 011 UNALLOCATED

SVE2 complex integer add

The encodings in this section are decoded from SVE2 Accumulate.

313029282726252423222120191817161514131211109876543210
01000101size00000op11011rotZmZdn
Decode fields Instruction Details Feature
op
0CADDFEAT_SVE2 || FEAT_SME
1SQCADDFEAT_SVE2 || FEAT_SME

SVE2 integer absolute difference and accumulate long

The encodings in this section are decoded from SVE2 Accumulate.

313029282726252423222120191817161514131211109876543210
01000101size0Zm1100UTZnZda
Decode fields Instruction Details Feature
UT
00SABALBFEAT_SVE2 || FEAT_SME
01SABALTFEAT_SVE2 || FEAT_SME
10UABALBFEAT_SVE2 || FEAT_SME
11UABALTFEAT_SVE2 || FEAT_SME

SVE2 integer add/subtract long with carry

The encodings in this section are decoded from SVE2 Accumulate.

313029282726252423222120191817161514131211109876543210
01000101size0Zm11010TZnZda
Decode fields Instruction Details Feature
sizeT
0x0ADCLBFEAT_SVE2 || FEAT_SME
0x1ADCLTFEAT_SVE2 || FEAT_SME
1x0SBCLBFEAT_SVE2 || FEAT_SME
1x1SBCLTFEAT_SVE2 || FEAT_SME

SVE2 bitwise shift right and accumulate

The encodings in this section are decoded from SVE2 Accumulate.

313029282726252423222120191817161514131211109876543210
01000101tszh0tszlimm31110RUZnZda
Decode fields Instruction Details Feature
RU
00SSRAFEAT_SVE2 || FEAT_SME
01USRAFEAT_SVE2 || FEAT_SME
10SRSRAFEAT_SVE2 || FEAT_SME
11URSRAFEAT_SVE2 || FEAT_SME

SVE2 bitwise shift and insert

The encodings in this section are decoded from SVE2 Accumulate.

313029282726252423222120191817161514131211109876543210
01000101tszh0tszlimm311110opZnZd
Decode fields Instruction Details Feature
op
0SRIFEAT_SVE2 || FEAT_SME
1SLIFEAT_SVE2 || FEAT_SME

SVE2 integer absolute difference and accumulate

The encodings in this section are decoded from SVE2 Accumulate.

313029282726252423222120191817161514131211109876543210
01000101size0Zm11111UZnZda
Decode fields Instruction Details Feature
U
0SABAFEAT_SVE2 || FEAT_SME
1UABAFEAT_SVE2 || FEAT_SME

SVE2 Narrowing

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
01000101op01op1op20op3op4op5
Decode fields Instruction details
op0op1op2op3op4op5
0 00 0 10 SVE2 saturating extract narrow
0 00 1 10 0 0 SME2 multi-vec extract narrow
0 00 1 10 0 1 UNALLOCATED
0 00 1 10 1 UNALLOCATED
0 0x SVE2 bitwise shift right narrow
0 != 00 10 UNALLOCATED
1 0x 0 0 SME2 multi-vec shift narrow
1 0x 0 1 UNALLOCATED
1 0x 1 UNALLOCATED
1 10 UNALLOCATED
11 SVE2 integer add/subtract narrow high part

SVE2 saturating extract narrow

The encodings in this section are decoded from SVE2 Narrowing.

313029282726252423222120191817161514131211109876543210
010001010tszh1tszl000010opcTZnZd
Decode fields Instruction Details Feature
opcT
000SQXTNBFEAT_SVE2 || FEAT_SME
001SQXTNTFEAT_SVE2 || FEAT_SME
010UQXTNBFEAT_SVE2 || FEAT_SME
011UQXTNTFEAT_SVE2 || FEAT_SME
100SQXTUNBFEAT_SVE2 || FEAT_SME
101SQXTUNTFEAT_SVE2 || FEAT_SME
11UNALLOCATED-

SME2 multi-vec extract narrow

The encodings in this section are decoded from SVE2 Narrowing.

313029282726252423222120191817161514131211109876543210
010001010tszh1tszl001010opc0Zn0Zd
Decode fields Instruction Details Feature
tszhtszlopc
01000SQCVTNFEAT_SME2 || FEAT_SVE2p1
01001UQCVTNFEAT_SME2 || FEAT_SVE2p1
01010SQCVTUNFEAT_SME2 || FEAT_SVE2p1
01011UNALLOCATED-
0!= 10UNALLOCATED-
1UNALLOCATED-

SVE2 bitwise shift right narrow

The encodings in this section are decoded from SVE2 Narrowing.

313029282726252423222120191817161514131211109876543210
010001010tszh1tszlimm300opURTZnZd
Decode fields Instruction Details Feature
opURT
0000SQSHRUNBFEAT_SVE2 || FEAT_SME
0001SQSHRUNTFEAT_SVE2 || FEAT_SME
0010SQRSHRUNBFEAT_SVE2 || FEAT_SME
0011SQRSHRUNTFEAT_SVE2 || FEAT_SME
0100SHRNBFEAT_SVE2 || FEAT_SME
0101SHRNTFEAT_SVE2 || FEAT_SME
0110RSHRNBFEAT_SVE2 || FEAT_SME
0111RSHRNTFEAT_SVE2 || FEAT_SME
1000SQSHRNBFEAT_SVE2 || FEAT_SME
1001SQSHRNTFEAT_SVE2 || FEAT_SME
1010SQRSHRNBFEAT_SVE2 || FEAT_SME
1011SQRSHRNTFEAT_SVE2 || FEAT_SME
1100UQSHRNBFEAT_SVE2 || FEAT_SME
1101UQSHRNTFEAT_SVE2 || FEAT_SME
1110UQRSHRNBFEAT_SVE2 || FEAT_SME
1111UQRSHRNTFEAT_SVE2 || FEAT_SME

SME2 multi-vec shift narrow

The encodings in this section are decoded from SVE2 Narrowing.

313029282726252423222120191817161514131211109876543210
010001011op01opc00op1UR0Zn0Zd
Decode fields Instruction Details Feature
op0opcop1UR
0000SQSHRNFEAT_SVE2p3 || FEAT_SME2p3
0010UQSHRNFEAT_SVE2p3 || FEAT_SME2p3
0100SQSHRUNFEAT_SVE2p3 || FEAT_SME2p3
0110UNALLOCATED-
0x1xxx011UNALLOCATED-
000xxx1UNALLOCATED-
001xxx001SQRSHRUN8-bitFEAT_SVE2p3 || FEAT_SME2p3
001xxx101SQRSHRN8-bitFEAT_SVE2p3 || FEAT_SME2p3
001xxx111UQRSHRN8-bitFEAT_SVE2p3 || FEAT_SME2p3
01xxxx001SQRSHRUN16-bitFEAT_SME2 || FEAT_SVE2p1
01xxxx101SQRSHRN16-bitFEAT_SME2 || FEAT_SVE2p1
01xxxx111UQRSHRN16-bitFEAT_SME2 || FEAT_SVE2p1
0!= 00xxx10xxx011UNALLOCATED-
1UNALLOCATED-

SVE2 integer add/subtract narrow high part

The encodings in this section are decoded from SVE2 Narrowing.

313029282726252423222120191817161514131211109876543210
01000101size1Zm011SRTZnZd
Decode fields Instruction Details Feature
SRT
000ADDHNBFEAT_SVE2 || FEAT_SME
001ADDHNTFEAT_SVE2 || FEAT_SME
010RADDHNBFEAT_SVE2 || FEAT_SME
011RADDHNTFEAT_SVE2 || FEAT_SME
100SUBHNBFEAT_SVE2 || FEAT_SME
101SUBHNTFEAT_SVE2 || FEAT_SME
110RSUBHNBFEAT_SVE2 || FEAT_SME
111RSUBHNTFEAT_SVE2 || FEAT_SME

SVE2 Histogram (Segment) and Lookup Table

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
01000101op2op01101op1
Decode fields Instruction details Feature
op2op0op1
0 0 001 UNALLOCATED-
0 0 011 LUTI6 (8-bit)FEAT_SVE2p3
1 0 0x1 UNALLOCATED-
1 001 LUTI4 (8-bit and 16-bit)Byte, single register table(FEAT_SVE2 && FEAT_LUT) || (FEAT_SME2 && FEAT_LUT)
1 011 LUTI6 (16-bit)FEAT_SVE2p3 || FEAT_SME2p3
000 HISTSEGFEAT_SVE2
100 LUTI2 (8-bit and 16-bit)Byte(FEAT_SVE2 && FEAT_LUT) || (FEAT_SME2 && FEAT_LUT)
1x1 SVE2 lookup table with 4-bit indices and 16-bit element size-
x10 LUTI2 (8-bit and 16-bit)Halfword(FEAT_SVE2 && FEAT_LUT) || (FEAT_SME2 && FEAT_LUT)

SVE2 lookup table with 4-bit indices and 16-bit element size

The encodings in this section are decoded from SVE2 Histogram (Segment) and Lookup Table.

313029282726252423222120191817161514131211109876543210
01000101i21Zm1011op1ZnZd
Decode fields Instruction Details Feature
op
0LUTI4 (8-bit and 16-bit)Halfword, two register table(FEAT_SVE2 && FEAT_LUT) || (FEAT_SME2 && FEAT_LUT)
1LUTI4 (8-bit and 16-bit)Halfword, single register table(FEAT_SVE2 && FEAT_LUT) || (FEAT_SME2 && FEAT_LUT)

SVE2 Crypto Extensions

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
010001011op0op1111op2op3op4
Decode fields Instruction details
op0op1op2op3op4
000 00 00x 00000 SVE2 crypto unary operations
000 00 00x != 00000 UNALLOCATED
000 01 00x UNALLOCATED
000 1x 00x SVE2 crypto destructive binary operations
xx0 1x 01x SVE2 multi-vector AES single round (two registers)
xx1 1x 01x SVE2 multi-vector AES single round (four registers)
00 01x UNALLOCATED
01 01x UNALLOCATED
10x SVE2 crypto constructive binary operations
110 0 SVE2 Multi-vector polynomial multiply long
111 0 SVE2 Multi-vector polynomial multiply long and accumulate vectors
11x 1 UNALLOCATED
!= 1x 01x UNALLOCATED
!= 000 00x UNALLOCATED

SVE2 crypto unary operations

The encodings in this section are decoded from SVE2 Crypto Extensions.

313029282726252423222120191817161514131211109876543210
01000101size10000011100op00000Zdn
Decode fields Instruction Details Feature
sizeop
000AESMCFEAT_SVE_AES
001AESIMCFEAT_SVE_AES
!= 00UNALLOCATED-

SVE2 crypto destructive binary operations

The encodings in this section are decoded from SVE2 Crypto Extensions.

313029282726252423222120191817161514131211109876543210
01000101size10001op11100o2ZmZdn
Decode fields Instruction Details Feature
sizeopo2
0000AESE (vectors)FEAT_SVE_AES
0001AESD (vectors)FEAT_SVE_AES
0010SM4EFEAT_SVE_SM4
0011UNALLOCATED-
!= 00UNALLOCATED-

SVE2 multi-vector AES single round (two registers)

The encodings in this section are decoded from SVE2 Crypto Extensions.

313029282726252423222120191817161514131211109876543210
01000101size1i201op11101o2ZmZdno3
Decode fields Instruction Details Feature
sizeopo2o3
001UNALLOCATED-
00000AESE (indexed)FEAT_SVE_AES2
00010AESD (indexed)FEAT_SVE_AES2
00100AESEMCFEAT_SVE_AES2
00110AESDIMCFEAT_SVE_AES2
!= 00UNALLOCATED-

SVE2 multi-vector AES single round (four registers)

The encodings in this section are decoded from SVE2 Crypto Extensions.

313029282726252423222120191817161514131211109876543210
01000101size1i211op11101o2ZmZdnopc3
Decode fields Instruction Details Feature
sizeopo2opc3
00!= 00UNALLOCATED-
000000AESE (indexed)FEAT_SVE_AES2
000100AESD (indexed)FEAT_SVE_AES2
001000AESEMCFEAT_SVE_AES2
001100AESDIMCFEAT_SVE_AES2
!= 00UNALLOCATED-

SVE2 crypto constructive binary operations

The encodings in this section are decoded from SVE2 Crypto Extensions.

313029282726252423222120191817161514131211109876543210
01000101size1Zm11110opZnZd
Decode fields Instruction Details Feature
sizeop
000SM4EKEYFEAT_SVE_SM4
001RAX1FEAT_SVE_SHA3
!= 00UNALLOCATED-

SVE2 Multi-vector polynomial multiply long

The encodings in this section are decoded from SVE2 Crypto Extensions.

313029282726252423222120191817161514131211109876543210
01000101size1Zm111110ZnZd0
Decode fields Instruction Details Feature
size
00PMULLFEAT_SVE_AES2
!= 00UNALLOCATED-

SVE2 Multi-vector polynomial multiply long and accumulate vectors

The encodings in this section are decoded from SVE2 Crypto Extensions.

313029282726252423222120191817161514131211109876543210
01000101size1Zm111111ZnZda0
Decode fields Instruction Details Feature
size
00PMLALFEAT_SVE_AES2
!= 00UNALLOCATED-

SVE2 FP8 widening multiply-add

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
01100100op00110op110
Decode fields Instruction details
op0op1
0 SVE2 FP8 multiply-add long long
1 0 SVE2 FP8 multiply-add long
1 1 UNALLOCATED

SVE2 FP8 multiply-add long long

The encodings in this section are decoded from SVE2 FP8 widening multiply-add.

313029282726252423222120191817161514131211109876543210
01100100001Zm10TT10ZnZda
Decode fields Instruction Details Feature
TT
00FMLALLBB (vectors)FEAT_SSVE_FP8FMA || (FEAT_SVE2 && FEAT_FP8FMA)
01FMLALLBT (vectors)FEAT_SSVE_FP8FMA || (FEAT_SVE2 && FEAT_FP8FMA)
10FMLALLTB (vectors)FEAT_SSVE_FP8FMA || (FEAT_SVE2 && FEAT_FP8FMA)
11FMLALLTT (vectors)FEAT_SSVE_FP8FMA || (FEAT_SVE2 && FEAT_FP8FMA)

SVE2 FP8 multiply-add long

The encodings in this section are decoded from SVE2 FP8 widening multiply-add.

313029282726252423222120191817161514131211109876543210
01100100101Zm100T10ZnZda
Decode fields Instruction Details Feature
T
0FMLALB (vectors, FP8 to FP16)FEAT_SSVE_FP8FMA || (FEAT_SVE2 && FEAT_FP8FMA)
1FMLALT (vectors, FP8 to FP16)FEAT_SSVE_FP8FMA || (FEAT_SVE2 && FEAT_FP8FMA)

SVE2 floating-point unary operations - zeroing predicated

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
01100100011op01
Decode fields Instruction details
op0
00x Floating-point round to integral value (predicated)
010 Floating-point convert (predicated)
011 Floating-point square root (predicated)
10x Floating-point round and convert from integer (predicated)
11x Floating-point log and convert to integer

Floating-point round to integral value (predicated)

The encodings in this section are decoded from SVE2 floating-point unary operations - zeroing predicated.

313029282726252423222120191817161514131211109876543210
01100100size01100op1opc2PgZnZd
Decode fields Instruction Details Feature
opopc2
000FRINT<r>Nearest with ties to even, zeroingFEAT_SVE2p2 || FEAT_SME2p2
001FRINT<r>Toward plus infinity, zeroingFEAT_SVE2p2 || FEAT_SME2p2
010FRINT<r>Toward minus infinity, zeroingFEAT_SVE2p2 || FEAT_SME2p2
011FRINT<r>Toward zero, zeroingFEAT_SVE2p2 || FEAT_SME2p2
100FRINT<r>Nearest with ties to away, zeroingFEAT_SVE2p2 || FEAT_SME2p2
101UNALLOCATED-
110FRINT<r>Current mode signalling inexact, zeroingFEAT_SVE2p2 || FEAT_SME2p2
111FRINT<r>Current mode, zeroingFEAT_SVE2p2 || FEAT_SME2p2

Floating-point convert (predicated)

The encodings in this section are decoded from SVE2 floating-point unary operations - zeroing predicated.

313029282726252423222120191817161514131211109876543210
01100100opc0110101opc2PgZnZd
Decode fields Instruction Details Feature
opcopc2
x011UNALLOCATED-
000xUNALLOCATED-
0010FCVTXFEAT_SVE2p2 || FEAT_SME2p2
01UNALLOCATED-
1000FCVTSingle-precision to half-precision, zeroingFEAT_SVE2p2 || FEAT_SME2p2
1001FCVTHalf-precision to single-precision, zeroingFEAT_SVE2p2 || FEAT_SME2p2
1010BFCVTFEAT_SVE2p2 || FEAT_SME2p2
1100FCVTDouble-precision to half-precision, zeroingFEAT_SVE2p2 || FEAT_SME2p2
1101FCVTHalf-precision to double-precision, zeroingFEAT_SVE2p2 || FEAT_SME2p2
1110FCVTDouble-precision to single-precision, zeroingFEAT_SVE2p2 || FEAT_SME2p2
1111FCVTSingle-precision to double-precision, zeroingFEAT_SVE2p2 || FEAT_SME2p2

Floating-point square root (predicated)

The encodings in this section are decoded from SVE2 floating-point unary operations - zeroing predicated.

313029282726252423222120191817161514131211109876543210
01100100size0110111opcPgZnZd
Decode fields Instruction Details Feature
opc
00FRECPXFEAT_SVE2p2 || FEAT_SME2p2
01FSQRTFEAT_SVE2p2 || FEAT_SME2p2
1xUNALLOCATED-

Floating-point round and convert from integer (predicated)

The encodings in this section are decoded from SVE2 floating-point unary operations - zeroing predicated.

313029282726252423222120191817161514131211109876543210
01100100opc01110o21o3UPgZnZd
Decode fields Instruction Details Feature
opco2o3U
0000FRINT32ZFEAT_SVE2p2 || FEAT_SME2p2
0001FRINT32XFEAT_SVE2p2 || FEAT_SME2p2
0010FRINT64ZFEAT_SVE2p2 || FEAT_SME2p2
0011FRINT64XFEAT_SVE2p2 || FEAT_SME2p2
0100UNALLOCATED-
01010SCVTF (predicated)16-bit to half-precision, zeroingFEAT_SVE2p2 || FEAT_SME2p2
01011UCVTF (predicated)16-bit to half-precision, zeroingFEAT_SVE2p2 || FEAT_SME2p2
01100SCVTF (predicated)32-bit to half-precision, zeroingFEAT_SVE2p2 || FEAT_SME2p2
01101UCVTF (predicated)32-bit to half-precision, zeroingFEAT_SVE2p2 || FEAT_SME2p2
01110SCVTF (predicated)64-bit to half-precision, zeroingFEAT_SVE2p2 || FEAT_SME2p2
01111UCVTF (predicated)64-bit to half-precision, zeroingFEAT_SVE2p2 || FEAT_SME2p2
100UNALLOCATED-
10100SCVTF (predicated)32-bit to single-precision, zeroingFEAT_SVE2p2 || FEAT_SME2p2
10101UCVTF (predicated)32-bit to single-precision, zeroingFEAT_SVE2p2 || FEAT_SME2p2
1011UNALLOCATED-
11000SCVTF (predicated)32-bit to double-precision, zeroingFEAT_SVE2p2 || FEAT_SME2p2
11001UCVTF (predicated)32-bit to double-precision, zeroingFEAT_SVE2p2 || FEAT_SME2p2
1101UNALLOCATED-
11100SCVTF (predicated)64-bit to single-precision, zeroingFEAT_SVE2p2 || FEAT_SME2p2
11101UCVTF (predicated)64-bit to single-precision, zeroingFEAT_SVE2p2 || FEAT_SME2p2
11110SCVTF (predicated)64-bit to double-precision, zeroingFEAT_SVE2p2 || FEAT_SME2p2
11111UCVTF (predicated)64-bit to double-precision, zeroingFEAT_SVE2p2 || FEAT_SME2p2

Floating-point log and convert to integer

The encodings in this section are decoded from SVE2 floating-point unary operations - zeroing predicated.

313029282726252423222120191817161514131211109876543210
01100100opc01111o21o3UPgZnZd
Decode fields Instruction Details Feature
opco2o3U
000FLOGBFEAT_SVE2p2 || FEAT_SME2p2
001UNALLOCATED-
0100UNALLOCATED-
01010FCVTZSHalf-precision to 16-bit, zeroingFEAT_SVE2p2 || FEAT_SME2p2
01011FCVTZUHalf-precision to 16-bit, zeroingFEAT_SVE2p2 || FEAT_SME2p2
01100FCVTZSHalf-precision to 32-bit, zeroingFEAT_SVE2p2 || FEAT_SME2p2
01101FCVTZUHalf-precision to 32-bit, zeroingFEAT_SVE2p2 || FEAT_SME2p2
01110FCVTZSHalf-precision to 64-bit, zeroingFEAT_SVE2p2 || FEAT_SME2p2
01111FCVTZUHalf-precision to 64-bit, zeroingFEAT_SVE2p2 || FEAT_SME2p2
100UNALLOCATED-
10100FCVTZSSingle-precision to 32-bit, zeroingFEAT_SVE2p2 || FEAT_SME2p2
10101FCVTZUSingle-precision to 32-bit, zeroingFEAT_SVE2p2 || FEAT_SME2p2
1011UNALLOCATED-
11000FCVTZSDouble-precision to 32-bit, zeroingFEAT_SVE2p2 || FEAT_SME2p2
11001FCVTZUDouble-precision to 32-bit, zeroingFEAT_SVE2p2 || FEAT_SME2p2
1101UNALLOCATED-
11100FCVTZSSingle-precision to 64-bit, zeroingFEAT_SVE2p2 || FEAT_SME2p2
11101FCVTZUSingle-precision to 64-bit, zeroingFEAT_SVE2p2 || FEAT_SME2p2
11110FCVTZSDouble-precision to 64-bit, zeroingFEAT_SVE2p2 || FEAT_SME2p2
11111FCVTZUDouble-precision to 64-bit, zeroingFEAT_SVE2p2 || FEAT_SME2p2

SVE floating-point widening multiply-add - indexed

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
01100100op0101op10
Decode fields Instruction details
op0op1
0 0 SVE BFloat16 floating-point dot product (indexed)
0 1 UNALLOCATED
1 SVE floating-point multiply-add long (indexed)

SVE BFloat16 floating-point dot product (indexed)

The encodings in this section are decoded from SVE floating-point widening multiply-add - indexed.

313029282726252423222120191817161514131211109876543210
011001000op1i2Zm0100opc2ZnZda
Decode fields Instruction Details Feature
opopc2
0x1FDOT (2-way, indexed, FP8 to FP16)FEAT_SSVE_FP8DOT2 || (FEAT_SVE2 && FEAT_FP8DOT2)
000FDOT (2-way, indexed, FP16 to FP32)FEAT_SME2 || FEAT_SVE2p1
010UNALLOCATED-
100BFDOT (indexed)(FEAT_SVE && FEAT_BF16) || (FEAT_SME && FEAT_BF16)
101FDOT (4-way, indexed)FEAT_SSVE_FP8DOT4 || (FEAT_SVE2 && FEAT_FP8DOT4)
11xUNALLOCATED-

SVE floating-point multiply-add long (indexed)

The encodings in this section are decoded from SVE floating-point widening multiply-add - indexed.

313029282726252423222120191817161514131211109876543210
011001001o21i3hZm01op0i3lTZnZda
Decode fields Instruction Details Feature
o2opT
000FMLALB (indexed, FP16 to FP32)FEAT_SVE2 || FEAT_SME
001FMLALT (indexed, FP16 to FP32)FEAT_SVE2 || FEAT_SME
010FMLSLB (indexed)FEAT_SVE2 || FEAT_SME
011FMLSLT (indexed)FEAT_SVE2 || FEAT_SME
100BFMLALB (indexed)(FEAT_SVE && FEAT_BF16) || (FEAT_SME && FEAT_BF16)
101BFMLALT (indexed)(FEAT_SVE && FEAT_BF16) || (FEAT_SME && FEAT_BF16)
110BFMLSLB (indexed)FEAT_SME2 || FEAT_SVE2p1
111BFMLSLT (indexed)FEAT_SME2 || FEAT_SVE2p1

SVE floating-point widening multiply-add

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
01100100op0110op100
Decode fields Instruction details
op0op1
0 0 SVE BFloat16 floating-point dot product
0 1 UNALLOCATED
1 SVE floating-point multiply-add long

SVE BFloat16 floating-point dot product

The encodings in this section are decoded from SVE floating-point widening multiply-add.

313029282726252423222120191817161514131211109876543210
011001000op1Zm10000o2ZnZda
Decode fields Instruction Details Feature
opo2
00FDOT (2-way, vectors, FP16 to FP32)FEAT_SME2 || FEAT_SVE2p1
01FDOT (2-way, vectors, FP8 to FP16)FEAT_SSVE_FP8DOT2 || (FEAT_SVE2 && FEAT_FP8DOT2)
10BFDOT (vectors)(FEAT_SVE && FEAT_BF16) || (FEAT_SME && FEAT_BF16)
11FDOT (4-way, vectors)FEAT_SSVE_FP8DOT4 || (FEAT_SVE2 && FEAT_FP8DOT4)

SVE floating-point multiply-add long

The encodings in this section are decoded from SVE floating-point widening multiply-add.

313029282726252423222120191817161514131211109876543210
011001001o21Zm10op00TZnZda
Decode fields Instruction Details Feature
o2opT
000FMLALB (vectors, FP16 to FP32)FEAT_SVE2 || FEAT_SME
001FMLALT (vectors, FP16 to FP32)FEAT_SVE2 || FEAT_SME
010FMLSLB (vectors)FEAT_SVE2 || FEAT_SME
011FMLSLT (vectors)FEAT_SVE2 || FEAT_SME
100BFMLALB (vectors)(FEAT_SVE && FEAT_BF16) || (FEAT_SME && FEAT_BF16)
101BFMLALT (vectors)(FEAT_SVE && FEAT_BF16) || (FEAT_SME && FEAT_BF16)
110BFMLSLB (vectors)FEAT_SME2 || FEAT_SVE2p1
111BFMLSLT (vectors)FEAT_SME2 || FEAT_SVE2p1

SVE floating-point unary operations - unpredicated

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
01100101op0001op10011op2op3
Decode fields Instruction details
op0op1op2op3
00 00x SVE2 FP8 upconverts
00 010 0 SVE2 FP8 downconverts
00 010 1 UNALLOCATED
00 011 UNALLOCATED
100 SVE2 Int to FP upconverts
101 0x 0 SVE2 FP to Int downconverts
101 0x 1 UNALLOCATED
101 1x UNALLOCATED
11x 00 SVE floating-point reciprocal estimate (unpredicated)
11x != 00 UNALLOCATED
!= 00 0xx UNALLOCATED

SVE2 FP8 upconverts

The encodings in this section are decoded from SVE floating-point unary operations - unpredicated.

313029282726252423222120191817161514131211109876543210
011001010000100L0011opcZnZd
Decode fields Instruction Details Feature
Lopc
000F1CVT, F2CVTF1CVT(FEAT_SVE2 && FEAT_FP8) || (FEAT_SME2 && FEAT_FP8)
001F1CVT, F2CVTF2CVT(FEAT_SVE2 && FEAT_FP8) || (FEAT_SME2 && FEAT_FP8)
010BF1CVT, BF2CVTBF1CVT(FEAT_SVE2 && FEAT_FP8) || (FEAT_SME2 && FEAT_FP8)
011BF1CVT, BF2CVTBF2CVT(FEAT_SVE2 && FEAT_FP8) || (FEAT_SME2 && FEAT_FP8)
100F1CVTLT, F2CVTLTF1CVTLT(FEAT_SVE2 && FEAT_FP8) || (FEAT_SME2 && FEAT_FP8)
101F1CVTLT, F2CVTLTF2CVTLT(FEAT_SVE2 && FEAT_FP8) || (FEAT_SME2 && FEAT_FP8)
110BF1CVTLT, BF2CVTLTBF1CVTLT(FEAT_SVE2 && FEAT_FP8) || (FEAT_SME2 && FEAT_FP8)
111BF1CVTLT, BF2CVTLTBF2CVTLT(FEAT_SVE2 && FEAT_FP8) || (FEAT_SME2 && FEAT_FP8)

SVE2 FP8 downconverts

The encodings in this section are decoded from SVE floating-point unary operations - unpredicated.

313029282726252423222120191817161514131211109876543210
01100101000010100011opcZn0Zd
Decode fields Instruction Details Feature
opc
00FCVTN(FEAT_SVE2 && FEAT_FP8) || (FEAT_SME2 && FEAT_FP8)
01FCVTNB(FEAT_SVE2 && FEAT_FP8) || (FEAT_SME2 && FEAT_FP8)
10BFCVTN(FEAT_SVE2 && FEAT_FP8) || (FEAT_SME2 && FEAT_FP8)
11FCVTNT (unpredicated)(FEAT_SVE2 && FEAT_FP8) || (FEAT_SME2 && FEAT_FP8)

SVE2 Int to FP upconverts

The encodings in this section are decoded from SVE floating-point unary operations - unpredicated.

313029282726252423222120191817161514131211109876543210
01100101size0011000011opcZnZd
Decode fields Instruction Details Feature
opc
00SCVTF (bottom, unpredicated)FEAT_SVE2p3 || FEAT_SME2p3
01UCVTF (bottom, unpredicated)FEAT_SVE2p3 || FEAT_SME2p3
10SCVTFLTFEAT_SVE2p3 || FEAT_SME2p3
11UCVTFLTFEAT_SVE2p3 || FEAT_SME2p3

SVE2 FP to Int downconverts

The encodings in this section are decoded from SVE floating-point unary operations - unpredicated.

313029282726252423222120191817161514131211109876543210
01100101size00110100110opZn0Zd
Decode fields Instruction Details Feature
op
0FCVTZSNFEAT_SVE2p3 || FEAT_SME2p3
1FCVTZUNFEAT_SVE2p3 || FEAT_SME2p3

SVE floating-point reciprocal estimate (unpredicated)

The encodings in this section are decoded from SVE floating-point unary operations - unpredicated.

313029282726252423222120191817161514131211109876543210
01100101size00111op001100ZnZd
Decode fields Instruction Details Feature
op
0FRECPEFEAT_SVE || FEAT_SME
1FRSQRTEFEAT_SVE || FEAT_SME

SVE floating-point compare - with zero

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
01100101010op0001
Decode fields Instruction details
op0
0 SVE floating-point compare with zero
1 UNALLOCATED

SVE floating-point compare with zero

The encodings in this section are decoded from SVE floating-point compare - with zero.

313029282726252423222120191817161514131211109876543210
01100101size0100eqlt001PgZnnePd
Decode fields Instruction Details Feature
eqltne
000FCM<cc> (zero)Greater than or equalFEAT_SVE || FEAT_SME
001FCM<cc> (zero)Greater thanFEAT_SVE || FEAT_SME
010FCM<cc> (zero)Less thanFEAT_SVE || FEAT_SME
011FCM<cc> (zero)Less than or equalFEAT_SVE || FEAT_SME
11UNALLOCATED-
100FCM<cc> (zero)EqualFEAT_SVE || FEAT_SME
110FCM<cc> (zero)Not equalFEAT_SVE || FEAT_SME

SVE floating-point accumulating reduction

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
01100101011op0001
Decode fields Instruction details
op0
0 SVE floating-point serial reduction (predicated)
1 UNALLOCATED

SVE floating-point serial reduction (predicated)

The encodings in this section are decoded from SVE floating-point accumulating reduction.

313029282726252423222120191817161514131211109876543210
01100101size0110opc001PgZmVdn
Decode fields Instruction Details Feature
opc
00FADDAFEAT_SVE
!= 00UNALLOCATED-

SVE floating-point arithmetic - predicated

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
011001010op0100op1op2
Decode fields Instruction details Feature
op0op1op2
0x SVE floating-point arithmetic (predicated)-
10 000 FTMADFEAT_SVE
10 != 000 UNALLOCATED-
11 0000 SVE floating-point arithmetic with immediate (predicated)-
11 != 0000 UNALLOCATED-

SVE floating-point arithmetic (predicated)

The encodings in this section are decoded from SVE floating-point arithmetic - predicated.

313029282726252423222120191817161514131211109876543210
01100101size00opc100PgZmZdn
Decode fields Instruction Details Feature
sizeopc
0011FSUBR (vectors)FEAT_SVE || FEAT_SME
1000FABDFEAT_SVE || FEAT_SME
1010FMULXFEAT_SVE || FEAT_SME
1011UNALLOCATED-
1100FDIVRFEAT_SVE || FEAT_SME
1101FDIVFEAT_SVE || FEAT_SME
1110FAMAX(FEAT_SVE2 && FEAT_FAMINMAX) || (FEAT_SME2 && FEAT_FAMINMAX)
1111FAMIN(FEAT_SVE2 && FEAT_FAMINMAX) || (FEAT_SME2 && FEAT_FAMINMAX)
000000BFADD (predicated)FEAT_SVE_B16B16
000001BFSUB (predicated)FEAT_SVE_B16B16
000010BFMUL (vectors, predicated)FEAT_SVE_B16B16
000100BFMAXNMFEAT_SVE_B16B16
000101BFMINNMFEAT_SVE_B16B16
000110BFMAXFEAT_SVE_B16B16
000111BFMINFEAT_SVE_B16B16
001001BFSCALEFEAT_SVE_BFSCALE
!= 000000FADD (vectors, predicated)FEAT_SVE || FEAT_SME
!= 000001FSUB (vectors, predicated)FEAT_SVE || FEAT_SME
!= 000010FMUL (vectors, predicated)FEAT_SVE || FEAT_SME
!= 000100FMAXNM (vectors)FEAT_SVE || FEAT_SME
!= 000101FMINNM (vectors)FEAT_SVE || FEAT_SME
!= 000110FMAX (vectors)FEAT_SVE || FEAT_SME
!= 000111FMIN (vectors)FEAT_SVE || FEAT_SME
!= 001001FSCALEFEAT_SVE || FEAT_SME

SVE floating-point arithmetic with immediate (predicated)

The encodings in this section are decoded from SVE floating-point arithmetic - predicated.

313029282726252423222120191817161514131211109876543210
01100101size011opc100Pg0000i1Zdn
Decode fields Instruction Details Feature
opc
000FADD (immediate)FEAT_SVE || FEAT_SME
001FSUB (immediate)FEAT_SVE || FEAT_SME
010FMUL (immediate)FEAT_SVE || FEAT_SME
011FSUBR (immediate)FEAT_SVE || FEAT_SME
100FMAXNM (immediate)FEAT_SVE || FEAT_SME
101FMINNM (immediate)FEAT_SVE || FEAT_SME
110FMAX (immediate)FEAT_SVE || FEAT_SME
111FMIN (immediate)FEAT_SVE || FEAT_SME

SVE floating-point unary operations - merging predicated

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
011001010op0101
Decode fields Instruction details
op0
00x SVE floating-point round to integral value
010 SVE floating-point convert precision
011 SVE floating-point unary operations
10x SVE integer convert to floating-point
11x SVE floating-point convert to integer

SVE floating-point round to integral value

The encodings in this section are decoded from SVE floating-point unary operations - merging predicated.

313029282726252423222120191817161514131211109876543210
01100101size000opc101PgZnZd
Decode fields Instruction Details Feature
opc
000FRINT<r>Nearest with ties to even, mergingFEAT_SVE || FEAT_SME
001FRINT<r>Toward plus infinity, mergingFEAT_SVE || FEAT_SME
010FRINT<r>Toward minus infinity, mergingFEAT_SVE || FEAT_SME
011FRINT<r>Toward zero, mergingFEAT_SVE || FEAT_SME
100FRINT<r>Nearest with ties to away, mergingFEAT_SVE || FEAT_SME
101UNALLOCATED-
110FRINT<r>Current mode signalling inexact, mergingFEAT_SVE || FEAT_SME
111FRINT<r>Current mode, mergingFEAT_SVE || FEAT_SME

SVE floating-point convert precision

The encodings in this section are decoded from SVE floating-point unary operations - merging predicated.

313029282726252423222120191817161514131211109876543210
01100101opc0010opc2101PgZnZd
Decode fields Instruction Details Feature
opcopc2
x011UNALLOCATED-
000xUNALLOCATED-
0010FCVTXFEAT_SVE2 || FEAT_SME
01UNALLOCATED-
1000FCVTSingle-precision to half-precision, mergingFEAT_SVE || FEAT_SME
1001FCVTHalf-precision to single-precision, mergingFEAT_SVE || FEAT_SME
1010BFCVT(FEAT_SVE && FEAT_BF16) || (FEAT_SME && FEAT_BF16)
1100FCVTDouble-precision to half-precision, mergingFEAT_SVE || FEAT_SME
1101FCVTHalf-precision to double-precision, mergingFEAT_SVE || FEAT_SME
1110FCVTDouble-precision to single-precision, mergingFEAT_SVE || FEAT_SME
1111FCVTSingle-precision to double-precision, mergingFEAT_SVE || FEAT_SME

SVE floating-point unary operations

The encodings in this section are decoded from SVE floating-point unary operations - merging predicated.

313029282726252423222120191817161514131211109876543210
01100101size0011opc101PgZnZd
Decode fields Instruction Details Feature
opc
00FRECPXFEAT_SVE || FEAT_SME
01FSQRTFEAT_SVE || FEAT_SME
1xUNALLOCATED-

SVE integer convert to floating-point

The encodings in this section are decoded from SVE floating-point unary operations - merging predicated.

313029282726252423222120191817161514131211109876543210
01100101opc010opc2U101PgZnZd
Decode fields Instruction Details Feature
opcopc2U
000x0FRINT32ZFEAT_SVE2p2 || FEAT_SME2p2
000x1FRINT32XFEAT_SVE2p2 || FEAT_SME2p2
001x0FRINT64ZFEAT_SVE2p2 || FEAT_SME2p2
001x1FRINT64XFEAT_SVE2p2 || FEAT_SME2p2
0100UNALLOCATED-
01010SCVTF (predicated)16-bit to half-precision, mergingFEAT_SVE || FEAT_SME
01011UCVTF (predicated)16-bit to half-precision, mergingFEAT_SVE || FEAT_SME
01100SCVTF (predicated)32-bit to half-precision, mergingFEAT_SVE || FEAT_SME
01101UCVTF (predicated)32-bit to half-precision, mergingFEAT_SVE || FEAT_SME
01110SCVTF (predicated)64-bit to half-precision, mergingFEAT_SVE || FEAT_SME
01111UCVTF (predicated)64-bit to half-precision, mergingFEAT_SVE || FEAT_SME
10100SCVTF (predicated)32-bit to single-precision, mergingFEAT_SVE || FEAT_SME
10101UCVTF (predicated)32-bit to single-precision, mergingFEAT_SVE || FEAT_SME
10!= 10UNALLOCATED-
11000SCVTF (predicated)32-bit to double-precision, mergingFEAT_SVE || FEAT_SME
11001UCVTF (predicated)32-bit to double-precision, mergingFEAT_SVE || FEAT_SME
1101UNALLOCATED-
11100SCVTF (predicated)64-bit to single-precision, mergingFEAT_SVE || FEAT_SME
11101UCVTF (predicated)64-bit to single-precision, mergingFEAT_SVE || FEAT_SME
11110SCVTF (predicated)64-bit to double-precision, mergingFEAT_SVE || FEAT_SME
11111UCVTF (predicated)64-bit to double-precision, mergingFEAT_SVE || FEAT_SME

SVE floating-point convert to integer

The encodings in this section are decoded from SVE floating-point unary operations - merging predicated.

313029282726252423222120191817161514131211109876543210
01100101opc011opc2U101PgZnZd
Decode fields Instruction Details Feature
opcopc2U
000FLOGBFEAT_SVE2 || FEAT_SME
001UNALLOCATED-
0100UNALLOCATED-
01010FCVTZSHalf-precision to 16-bit, mergingFEAT_SVE || FEAT_SME
01011FCVTZUHalf-precision to 16-bit, mergingFEAT_SVE || FEAT_SME
01100FCVTZSHalf-precision to 32-bit, mergingFEAT_SVE || FEAT_SME
01101FCVTZUHalf-precision to 32-bit, mergingFEAT_SVE || FEAT_SME
01110FCVTZSHalf-precision to 64-bit, mergingFEAT_SVE || FEAT_SME
01111FCVTZUHalf-precision to 64-bit, mergingFEAT_SVE || FEAT_SME
10100FCVTZSSingle-precision to 32-bit, mergingFEAT_SVE || FEAT_SME
10101FCVTZUSingle-precision to 32-bit, mergingFEAT_SVE || FEAT_SME
10!= 10UNALLOCATED-
11000FCVTZSDouble-precision to 32-bit, mergingFEAT_SVE || FEAT_SME
11001FCVTZUDouble-precision to 32-bit, mergingFEAT_SVE || FEAT_SME
1101UNALLOCATED-
11100FCVTZSSingle-precision to 64-bit, mergingFEAT_SVE || FEAT_SME
11101FCVTZUSingle-precision to 64-bit, mergingFEAT_SVE || FEAT_SME
11110FCVTZSDouble-precision to 64-bit, mergingFEAT_SVE || FEAT_SME
11111FCVTZUDouble-precision to 64-bit, mergingFEAT_SVE || FEAT_SME

SVE floating-point multiply-add

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
011001011op0
Decode fields Instruction details
op0
0 SVE floating-point multiply-accumulate writing addend
1 SVE floating-point multiply-accumulate writing multiplicand

SVE floating-point multiply-accumulate writing addend

The encodings in this section are decoded from SVE floating-point multiply-add.

313029282726252423222120191817161514131211109876543210
01100101size1Zm0opcPgZnZda
Decode fields Instruction Details Feature
sizeopc
0000BFMLA (vectors)FEAT_SVE_B16B16
0001BFMLS (vectors)FEAT_SVE_B16B16
001xUNALLOCATED-
!= 0000FMLA (vectors)FEAT_SVE || FEAT_SME
!= 0001FMLS (vectors)FEAT_SVE || FEAT_SME
!= 0010FNMLAFEAT_SVE || FEAT_SME
!= 0011FNMLSFEAT_SVE || FEAT_SME

SVE floating-point multiply-accumulate writing multiplicand

The encodings in this section are decoded from SVE floating-point multiply-add.

313029282726252423222120191817161514131211109876543210
01100101size1Za1opcPgZmZdn
Decode fields Instruction Details Feature
opc
00FMADFEAT_SVE || FEAT_SME
01FMSBFEAT_SVE || FEAT_SME
10FNMADFEAT_SVE || FEAT_SME
11FNMSBFEAT_SVE || FEAT_SME

SVE Memory - 32-bit Gather and Unsized Contiguous

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
1000010op0op1op2op3
Decode fields Instruction details Feature
op0op1op2op3
00 x1 0xx 0 SVE 32-bit gather prefetch (scalar plus 32-bit scaled offsets)-
00 x1 0xx 1 UNALLOCATED-
01 x1 0xx SVE 32-bit gather load halfwords (scalar plus 32-bit scaled offsets)-
10 x1 0xx SVE 32-bit gather load words (scalar plus 32-bit scaled offsets)-
11 0x 000 0 LDR (predicate)FEAT_SVE || FEAT_SME
11 0x 000 1 UNALLOCATED-
11 0x 010 LDR (vector)FEAT_SVE || FEAT_SME
11 0x 0x1 UNALLOCATED-
11 1x 0xx 0 SVE contiguous prefetch (scalar plus immediate)-
11 1x 0xx 1 UNALLOCATED-
00 10x SVE2 32-bit gather non-temporal load (vector plus scalar)-
00 110 0 SVE contiguous prefetch (scalar plus scalar)-
00 111 0 SVE 32-bit gather prefetch (vector plus immediate)-
00 11x 1 UNALLOCATED-
01 1xx SVE 32-bit gather load (vector plus immediate)-
1x 1xx SVE load and broadcast element-
!= 11 x0 0xx SVE 32-bit gather load (scalar plus 32-bit unscaled offsets)-

SVE 32-bit gather prefetch (scalar plus 32-bit scaled offsets)

The encodings in this section are decoded from SVE Memory - 32-bit Gather and Unsized Contiguous.

313029282726252423222120191817161514131211109876543210
100001000xs1Zm0mszPgRn0prfop
Decode fields Instruction Details Feature
msz
00PRFB (scalar plus vector)FEAT_SVE
01PRFH (scalar plus vector)FEAT_SVE
10PRFW (scalar plus vector)FEAT_SVE
11PRFD (scalar plus vector)FEAT_SVE

SVE 32-bit gather load halfwords (scalar plus 32-bit scaled offsets)

The encodings in this section are decoded from SVE Memory - 32-bit Gather and Unsized Contiguous.

313029282726252423222120191817161514131211109876543210
100001001xs1Zm0UffPgRnZt
Decode fields Instruction Details Feature
Uff
00LD1SH (scalar plus vector)FEAT_SVE
01LDFF1SH (scalar plus vector)FEAT_SVE
10LD1H (scalar plus vector)FEAT_SVE
11LDFF1H (scalar plus vector)FEAT_SVE

SVE 32-bit gather load words (scalar plus 32-bit scaled offsets)

The encodings in this section are decoded from SVE Memory - 32-bit Gather and Unsized Contiguous.

313029282726252423222120191817161514131211109876543210
100001010xs1Zm0UffPgRnZt
Decode fields Instruction Details Feature
Uff
0UNALLOCATED-
10LD1W (scalar plus vector)FEAT_SVE
11LDFF1W (scalar plus vector)FEAT_SVE

SVE contiguous prefetch (scalar plus immediate)

The encodings in this section are decoded from SVE Memory - 32-bit Gather and Unsized Contiguous.

313029282726252423222120191817161514131211109876543210
1000010111imm60mszPgRn0prfop
Decode fields Instruction Details Feature
msz
00PRFB (scalar plus immediate)FEAT_SVE || FEAT_SME
01PRFH (scalar plus immediate)FEAT_SVE || FEAT_SME
10PRFW (scalar plus immediate)FEAT_SVE || FEAT_SME
11PRFD (scalar plus immediate)FEAT_SVE || FEAT_SME

SVE2 32-bit gather non-temporal load (vector plus scalar)

The encodings in this section are decoded from SVE Memory - 32-bit Gather and Unsized Contiguous.

313029282726252423222120191817161514131211109876543210
1000010msz00Rm10UPgZnZt
Decode fields Instruction Details Feature
mszU
000LDNT1SBFEAT_SVE2
001LDNT1B (vector plus scalar)FEAT_SVE2
010LDNT1SHFEAT_SVE2
011LDNT1H (vector plus scalar)FEAT_SVE2
100UNALLOCATED-
101LDNT1W (vector plus scalar)FEAT_SVE2
11UNALLOCATED-

SVE contiguous prefetch (scalar plus scalar)

The encodings in this section are decoded from SVE Memory - 32-bit Gather and Unsized Contiguous.

313029282726252423222120191817161514131211109876543210
1000010msz00Rm110PgRn0prfop
Decode fields Instruction Details Feature
mszRm
11111UNALLOCATED-
00!= 11111PRFB (scalar plus scalar)FEAT_SVE || FEAT_SME
01!= 11111PRFH (scalar plus scalar)FEAT_SVE || FEAT_SME
10!= 11111PRFW (scalar plus scalar)FEAT_SVE || FEAT_SME
11!= 11111PRFD (scalar plus scalar)FEAT_SVE || FEAT_SME

SVE 32-bit gather prefetch (vector plus immediate)

The encodings in this section are decoded from SVE Memory - 32-bit Gather and Unsized Contiguous.

313029282726252423222120191817161514131211109876543210
1000010msz00imm5111PgZn0prfop
Decode fields Instruction Details Feature
msz
00PRFB (vector plus immediate)FEAT_SVE
01PRFH (vector plus immediate)FEAT_SVE
10PRFW (vector plus immediate)FEAT_SVE
11PRFD (vector plus immediate)FEAT_SVE

SVE 32-bit gather load (vector plus immediate)

The encodings in this section are decoded from SVE Memory - 32-bit Gather and Unsized Contiguous.

313029282726252423222120191817161514131211109876543210
1000010msz01imm51UffPgZnZt
Decode fields Instruction Details Feature
mszUff
0000LD1SB (vector plus immediate)FEAT_SVE
0001LDFF1SB (vector plus immediate)FEAT_SVE
0010LD1B (vector plus immediate)FEAT_SVE
0011LDFF1B (vector plus immediate)FEAT_SVE
0100LD1SH (vector plus immediate)FEAT_SVE
0101LDFF1SH (vector plus immediate)FEAT_SVE
0110LD1H (vector plus immediate)FEAT_SVE
0111LDFF1H (vector plus immediate)FEAT_SVE
100UNALLOCATED-
1010LD1W (vector plus immediate)FEAT_SVE
1011LDFF1W (vector plus immediate)FEAT_SVE
11UNALLOCATED-

SVE load and broadcast element

The encodings in this section are decoded from SVE Memory - 32-bit Gather and Unsized Contiguous.

313029282726252423222120191817161514131211109876543210
1000010dtypeh1imm61dtypelPgRnZt
Decode fields Instruction Details Feature
dtypehdtypel
0000LD1RB8-bit elementFEAT_SVE || FEAT_SME
0001LD1RB16-bit elementFEAT_SVE || FEAT_SME
0010LD1RB32-bit elementFEAT_SVE || FEAT_SME
0011LD1RB64-bit elementFEAT_SVE || FEAT_SME
0100LD1RSWFEAT_SVE || FEAT_SME
0101LD1RH16-bit elementFEAT_SVE || FEAT_SME
0110LD1RH32-bit elementFEAT_SVE || FEAT_SME
0111LD1RH64-bit elementFEAT_SVE || FEAT_SME
1000LD1RSH64-bit elementFEAT_SVE || FEAT_SME
1001LD1RSH32-bit elementFEAT_SVE || FEAT_SME
1010LD1RW32-bit elementFEAT_SVE || FEAT_SME
1011LD1RW64-bit elementFEAT_SVE || FEAT_SME
1100LD1RSB64-bit elementFEAT_SVE || FEAT_SME
1101LD1RSB32-bit elementFEAT_SVE || FEAT_SME
1110LD1RSB16-bit elementFEAT_SVE || FEAT_SME
1111LD1RDFEAT_SVE || FEAT_SME

SVE 32-bit gather load (scalar plus 32-bit unscaled offsets)

The encodings in this section are decoded from SVE Memory - 32-bit Gather and Unsized Contiguous.

313029282726252423222120191817161514131211109876543210
1000010!= 11xs0Zm0UffPgRnZt
opc

The following constraints also apply to this encoding: opc != '11'

Decode fields Instruction Details Feature
opcUff
0000LD1SB (scalar plus vector)FEAT_SVE
0001LDFF1SB (scalar plus vector)FEAT_SVE
0010LD1B (scalar plus vector)FEAT_SVE
0011LDFF1B (scalar plus vector)FEAT_SVE
0100LD1SH (scalar plus vector)FEAT_SVE
0101LDFF1SH (scalar plus vector)FEAT_SVE
0110LD1H (scalar plus vector)FEAT_SVE
0111LDFF1H (scalar plus vector)FEAT_SVE
100UNALLOCATED-
1010LD1W (scalar plus vector)FEAT_SVE
1011LDFF1W (scalar plus vector)FEAT_SVE

SVE Memory - Contiguous Load

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
1010010op0op1op2
Decode fields Instruction details
op0op1op2
00 0 111 SVE contiguous non-temporal load (scalar plus immediate)
00 1 001 SVE contiguous load (quadwords, scalar plus immediate)
00 1 111 SVE load multiple structures (quadwords, scalar plus immediate)
00 100 SVE contiguous load (quadwords, scalar plus scalar)
00 110 SVE contiguous non-temporal load (scalar plus scalar)
01 100 SVE load multiple structures (quadwords, scalar plus scalar)
1x 100 UNALLOCATED
0 001 SVE load and broadcast quadword (scalar plus immediate)
0 101 SVE contiguous load (scalar plus immediate)
1 101 SVE contiguous non-fault load (scalar plus immediate)
000 SVE load and broadcast quadword (scalar plus scalar)
010 SVE contiguous load (scalar plus scalar)
011 SVE contiguous first-fault load (scalar plus scalar)
!= 00 0 111 SVE load multiple structures (scalar plus immediate)
!= 00 1 001 UNALLOCATED
!= 00 1 111 UNALLOCATED
!= 00 110 SVE load multiple structures (scalar plus scalar)

SVE contiguous non-temporal load (scalar plus immediate)

The encodings in this section are decoded from SVE Memory - Contiguous Load.

313029282726252423222120191817161514131211109876543210
1010010msz000imm4111PgRnZt
Decode fields Instruction Details Feature
msz
00LDNT1B (scalar plus immediate, single register)FEAT_SVE || FEAT_SME
01LDNT1H (scalar plus immediate, single register)FEAT_SVE || FEAT_SME
10LDNT1W (scalar plus immediate, single register)FEAT_SVE || FEAT_SME
11LDNT1D (scalar plus immediate, single register)FEAT_SVE || FEAT_SME

SVE contiguous load (quadwords, scalar plus immediate)

The encodings in this section are decoded from SVE Memory - Contiguous Load.

313029282726252423222120191817161514131211109876543210
1010010dtype001imm4001PgRnZt
Decode fields Instruction Details Feature
dtype
0xUNALLOCATED-
10LD1W (scalar plus immediate, single register)FEAT_SVE2p1
11LD1D (scalar plus immediate, single register)FEAT_SVE2p1

SVE load multiple structures (quadwords, scalar plus immediate)

The encodings in this section are decoded from SVE Memory - Contiguous Load.

313029282726252423222120191817161514131211109876543210
1010010num001imm4111PgRnZt
Decode fields Instruction Details Feature
num
00UNALLOCATED-
01LD2Q (scalar plus immediate)FEAT_SVE2p1 || FEAT_SME2p1
10LD3Q (scalar plus immediate)FEAT_SVE2p1 || FEAT_SME2p1
11LD4Q (scalar plus immediate)FEAT_SVE2p1 || FEAT_SME2p1

SVE contiguous load (quadwords, scalar plus scalar)

The encodings in this section are decoded from SVE Memory - Contiguous Load.

313029282726252423222120191817161514131211109876543210
1010010dtype00Rm100PgRnZt
Decode fields Instruction Details Feature
dtypeRm
0xUNALLOCATED-
1x11111UNALLOCATED-
10!= 11111LD1W (scalar plus scalar, single register)FEAT_SVE2p1
11!= 11111LD1D (scalar plus scalar, single register)FEAT_SVE2p1

SVE contiguous non-temporal load (scalar plus scalar)

The encodings in this section are decoded from SVE Memory - Contiguous Load.

313029282726252423222120191817161514131211109876543210
1010010msz00Rm110PgRnZt
Decode fields Instruction Details Feature
mszRm
11111UNALLOCATED-
00!= 11111LDNT1B (scalar plus scalar, single register)FEAT_SVE || FEAT_SME
01!= 11111LDNT1H (scalar plus scalar, single register)FEAT_SVE || FEAT_SME
10!= 11111LDNT1W (scalar plus scalar, single register)FEAT_SVE || FEAT_SME
11!= 11111LDNT1D (scalar plus scalar, single register)FEAT_SVE || FEAT_SME

SVE load multiple structures (quadwords, scalar plus scalar)

The encodings in this section are decoded from SVE Memory - Contiguous Load.

313029282726252423222120191817161514131211109876543210
1010010num01Rm100PgRnZt
Decode fields Instruction Details Feature
numRm
00UNALLOCATED-
01!= 11111LD2Q (scalar plus scalar)FEAT_SVE2p1 || FEAT_SME2p1
10!= 11111LD3Q (scalar plus scalar)FEAT_SVE2p1 || FEAT_SME2p1
11!= 11111LD4Q (scalar plus scalar)FEAT_SVE2p1 || FEAT_SME2p1
!= 0011111UNALLOCATED-

SVE load and broadcast quadword (scalar plus immediate)

The encodings in this section are decoded from SVE Memory - Contiguous Load.

313029282726252423222120191817161514131211109876543210
1010010mszssz0imm4001PgRnZt
Decode fields Instruction Details Feature
mszssz
1xUNALLOCATED-
0000LD1RQB (scalar plus immediate)FEAT_SVE || FEAT_SME
0001LD1ROB (scalar plus immediate)FEAT_F64MM
0100LD1RQH (scalar plus immediate)FEAT_SVE || FEAT_SME
0101LD1ROH (scalar plus immediate)FEAT_F64MM
1000LD1RQW (scalar plus immediate)FEAT_SVE || FEAT_SME
1001LD1ROW (scalar plus immediate)FEAT_F64MM
1100LD1RQD (scalar plus immediate)FEAT_SVE || FEAT_SME
1101LD1ROD (scalar plus immediate)FEAT_F64MM

SVE contiguous load (scalar plus immediate)

The encodings in this section are decoded from SVE Memory - Contiguous Load.

313029282726252423222120191817161514131211109876543210
1010010dtype0imm4101PgRnZt
Decode fields Instruction Details Feature
dtype
0000LD1B (scalar plus immediate, single register)8-bit elementFEAT_SVE || FEAT_SME
0001LD1B (scalar plus immediate, single register)16-bit elementFEAT_SVE || FEAT_SME
0010LD1B (scalar plus immediate, single register)32-bit elementFEAT_SVE || FEAT_SME
0011LD1B (scalar plus immediate, single register)64-bit elementFEAT_SVE || FEAT_SME
0100LD1SW (scalar plus immediate)FEAT_SVE || FEAT_SME
0101LD1H (scalar plus immediate, single register)16-bit elementFEAT_SVE || FEAT_SME
0110LD1H (scalar plus immediate, single register)32-bit elementFEAT_SVE || FEAT_SME
0111LD1H (scalar plus immediate, single register)64-bit elementFEAT_SVE || FEAT_SME
1000LD1SH (scalar plus immediate)64-bit elementFEAT_SVE || FEAT_SME
1001LD1SH (scalar plus immediate)32-bit elementFEAT_SVE || FEAT_SME
1010LD1W (scalar plus immediate, single register)32-bit elementFEAT_SVE || FEAT_SME
1011LD1W (scalar plus immediate, single register)64-bit elementFEAT_SVE || FEAT_SME
1100LD1SB (scalar plus immediate)64-bit elementFEAT_SVE || FEAT_SME
1101LD1SB (scalar plus immediate)32-bit elementFEAT_SVE || FEAT_SME
1110LD1SB (scalar plus immediate)16-bit elementFEAT_SVE || FEAT_SME
1111LD1D (scalar plus immediate, single register)FEAT_SVE || FEAT_SME

SVE contiguous non-fault load (scalar plus immediate)

The encodings in this section are decoded from SVE Memory - Contiguous Load.

313029282726252423222120191817161514131211109876543210
1010010dtype1imm4101PgRnZt
Decode fields Instruction Details Feature
dtype
0000LDNF1B8-bit elementFEAT_SVE
0001LDNF1B16-bit elementFEAT_SVE
0010LDNF1B32-bit elementFEAT_SVE
0011LDNF1B64-bit elementFEAT_SVE
0100LDNF1SWFEAT_SVE
0101LDNF1H16-bit elementFEAT_SVE
0110LDNF1H32-bit elementFEAT_SVE
0111LDNF1H64-bit elementFEAT_SVE
1000LDNF1SH64-bit elementFEAT_SVE
1001LDNF1SH32-bit elementFEAT_SVE
1010LDNF1W32-bit elementFEAT_SVE
1011LDNF1W64-bit elementFEAT_SVE
1100LDNF1SB64-bit elementFEAT_SVE
1101LDNF1SB32-bit elementFEAT_SVE
1110LDNF1SB16-bit elementFEAT_SVE
1111LDNF1DFEAT_SVE

SVE load and broadcast quadword (scalar plus scalar)

The encodings in this section are decoded from SVE Memory - Contiguous Load.

313029282726252423222120191817161514131211109876543210
1010010mszsszRm000PgRnZt
Decode fields Instruction Details Feature
mszsszRm
0x11111UNALLOCATED-
1xUNALLOCATED-
0000!= 11111LD1RQB (scalar plus scalar)FEAT_SVE || FEAT_SME
0001!= 11111LD1ROB (scalar plus scalar)FEAT_F64MM
0100!= 11111LD1RQH (scalar plus scalar)FEAT_SVE || FEAT_SME
0101!= 11111LD1ROH (scalar plus scalar)FEAT_F64MM
1000!= 11111LD1RQW (scalar plus scalar)FEAT_SVE || FEAT_SME
1001!= 11111LD1ROW (scalar plus scalar)FEAT_F64MM
1100!= 11111LD1RQD (scalar plus scalar)FEAT_SVE || FEAT_SME
1101!= 11111LD1ROD (scalar plus scalar)FEAT_F64MM

SVE contiguous load (scalar plus scalar)

The encodings in this section are decoded from SVE Memory - Contiguous Load.

313029282726252423222120191817161514131211109876543210
1010010dtypeRm010PgRnZt
Decode fields Instruction Details Feature
dtypeRm
11111UNALLOCATED-
0000!= 11111LD1B (scalar plus scalar, single register)8-bit elementFEAT_SVE || FEAT_SME
0001!= 11111LD1B (scalar plus scalar, single register)16-bit elementFEAT_SVE || FEAT_SME
0010!= 11111LD1B (scalar plus scalar, single register)32-bit elementFEAT_SVE || FEAT_SME
0011!= 11111LD1B (scalar plus scalar, single register)64-bit elementFEAT_SVE || FEAT_SME
0100!= 11111LD1SW (scalar plus scalar)FEAT_SVE || FEAT_SME
0101!= 11111LD1H (scalar plus scalar, single register)16-bit elementFEAT_SVE || FEAT_SME
0110!= 11111LD1H (scalar plus scalar, single register)32-bit elementFEAT_SVE || FEAT_SME
0111!= 11111LD1H (scalar plus scalar, single register)64-bit elementFEAT_SVE || FEAT_SME
1000!= 11111LD1SH (scalar plus scalar)64-bit elementFEAT_SVE || FEAT_SME
1001!= 11111LD1SH (scalar plus scalar)32-bit elementFEAT_SVE || FEAT_SME
1010!= 11111LD1W (scalar plus scalar, single register)32-bit elementFEAT_SVE || FEAT_SME
1011!= 11111LD1W (scalar plus scalar, single register)64-bit elementFEAT_SVE || FEAT_SME
1100!= 11111LD1SB (scalar plus scalar)64-bit elementFEAT_SVE || FEAT_SME
1101!= 11111LD1SB (scalar plus scalar)32-bit elementFEAT_SVE || FEAT_SME
1110!= 11111LD1SB (scalar plus scalar)16-bit elementFEAT_SVE || FEAT_SME
1111!= 11111LD1D (scalar plus scalar, single register)FEAT_SVE || FEAT_SME

SVE contiguous first-fault load (scalar plus scalar)

The encodings in this section are decoded from SVE Memory - Contiguous Load.

313029282726252423222120191817161514131211109876543210
1010010dtypeRm011PgRnZt
Decode fields Instruction Details Feature
dtype
0000LDFF1B (scalar plus scalar)8-bit elementFEAT_SVE
0001LDFF1B (scalar plus scalar)16-bit elementFEAT_SVE
0010LDFF1B (scalar plus scalar)32-bit elementFEAT_SVE
0011LDFF1B (scalar plus scalar)64-bit elementFEAT_SVE
0100LDFF1SW (scalar plus scalar)FEAT_SVE
0101LDFF1H (scalar plus scalar)16-bit elementFEAT_SVE
0110LDFF1H (scalar plus scalar)32-bit elementFEAT_SVE
0111LDFF1H (scalar plus scalar)64-bit elementFEAT_SVE
1000LDFF1SH (scalar plus scalar)64-bit elementFEAT_SVE
1001LDFF1SH (scalar plus scalar)32-bit elementFEAT_SVE
1010LDFF1W (scalar plus scalar)32-bit elementFEAT_SVE
1011LDFF1W (scalar plus scalar)64-bit elementFEAT_SVE
1100LDFF1SB (scalar plus scalar)64-bit elementFEAT_SVE
1101LDFF1SB (scalar plus scalar)32-bit elementFEAT_SVE
1110LDFF1SB (scalar plus scalar)16-bit elementFEAT_SVE
1111LDFF1D (scalar plus scalar)FEAT_SVE

SVE load multiple structures (scalar plus immediate)

The encodings in this section are decoded from SVE Memory - Contiguous Load.

313029282726252423222120191817161514131211109876543210
1010010msz!= 000imm4111PgRnZt
opc

The following constraints also apply to this encoding: opc != '00'

Decode fields Instruction Details Feature
mszopc
0001LD2B (scalar plus immediate)FEAT_SVE || FEAT_SME
0010LD3B (scalar plus immediate)FEAT_SVE || FEAT_SME
0011LD4B (scalar plus immediate)FEAT_SVE || FEAT_SME
0101LD2H (scalar plus immediate)FEAT_SVE || FEAT_SME
0110LD3H (scalar plus immediate)FEAT_SVE || FEAT_SME
0111LD4H (scalar plus immediate)FEAT_SVE || FEAT_SME
1001LD2W (scalar plus immediate)FEAT_SVE || FEAT_SME
1010LD3W (scalar plus immediate)FEAT_SVE || FEAT_SME
1011LD4W (scalar plus immediate)FEAT_SVE || FEAT_SME
1101LD2D (scalar plus immediate)FEAT_SVE || FEAT_SME
1110LD3D (scalar plus immediate)FEAT_SVE || FEAT_SME
1111LD4D (scalar plus immediate)FEAT_SVE || FEAT_SME

SVE load multiple structures (scalar plus scalar)

The encodings in this section are decoded from SVE Memory - Contiguous Load.

313029282726252423222120191817161514131211109876543210
1010010msz!= 00Rm110PgRnZt
opc

The following constraints also apply to this encoding: opc != '00'

Decode fields Instruction Details Feature
mszopcRm
!= 0011111UNALLOCATED-
0001!= 11111LD2B (scalar plus scalar)FEAT_SVE || FEAT_SME
0010!= 11111LD3B (scalar plus scalar)FEAT_SVE || FEAT_SME
0011!= 11111LD4B (scalar plus scalar)FEAT_SVE || FEAT_SME
0101!= 11111LD2H (scalar plus scalar)FEAT_SVE || FEAT_SME
0110!= 11111LD3H (scalar plus scalar)FEAT_SVE || FEAT_SME
0111!= 11111LD4H (scalar plus scalar)FEAT_SVE || FEAT_SME
1001!= 11111LD2W (scalar plus scalar)FEAT_SVE || FEAT_SME
1010!= 11111LD3W (scalar plus scalar)FEAT_SVE || FEAT_SME
1011!= 11111LD4W (scalar plus scalar)FEAT_SVE || FEAT_SME
1101!= 11111LD2D (scalar plus scalar)FEAT_SVE || FEAT_SME
1110!= 11111LD3D (scalar plus scalar)FEAT_SVE || FEAT_SME
1111!= 11111LD4D (scalar plus scalar)FEAT_SVE || FEAT_SME

SVE Memory - 64-bit Gather

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
1100010op0op1op2op3
Decode fields Instruction details Feature
op0op1op2op3
00 00 101 LD1QFEAT_SVE2p1
00 01 0xx 1 UNALLOCATED-
00 11 1xx 0 SVE 64-bit gather prefetch (scalar plus 64-bit scaled offsets)-
00 11 1 UNALLOCATED-
00 x1 0xx 0 SVE 64-bit gather prefetch (scalar plus unpacked 32-bit scaled offsets)-
00 111 0 SVE 64-bit gather prefetch (vector plus immediate)-
00 111 1 UNALLOCATED-
00 1x0 SVE2 64-bit gather non-temporal load (vector plus scalar)-
01 1xx SVE 64-bit gather load (vector plus immediate)-
10 1xx SVE 64-bit gather load (scalar plus 64-bit unscaled offsets)-
x0 0xx SVE 64-bit gather load (scalar plus unpacked 32-bit unscaled offsets)-
!= 00 00 101 UNALLOCATED-
!= 00 11 1xx SVE 64-bit gather load (scalar plus 64-bit scaled offsets)-
!= 00 x1 0xx SVE 64-bit gather load (scalar plus 32-bit unpacked scaled offsets)-

SVE 64-bit gather prefetch (scalar plus 64-bit scaled offsets)

The encodings in this section are decoded from SVE Memory - 64-bit Gather.

313029282726252423222120191817161514131211109876543210
11000100011Zm1mszPgRn0prfop
Decode fields Instruction Details Feature
msz
00PRFB (scalar plus vector)FEAT_SVE
01PRFH (scalar plus vector)FEAT_SVE
10PRFW (scalar plus vector)FEAT_SVE
11PRFD (scalar plus vector)FEAT_SVE

SVE 64-bit gather prefetch (scalar plus unpacked 32-bit scaled offsets)

The encodings in this section are decoded from SVE Memory - 64-bit Gather.

313029282726252423222120191817161514131211109876543210
110001000xs1Zm0mszPgRn0prfop
Decode fields Instruction Details Feature
msz
00PRFB (scalar plus vector)FEAT_SVE
01PRFH (scalar plus vector)FEAT_SVE
10PRFW (scalar plus vector)FEAT_SVE
11PRFD (scalar plus vector)FEAT_SVE

SVE 64-bit gather prefetch (vector plus immediate)

The encodings in this section are decoded from SVE Memory - 64-bit Gather.

313029282726252423222120191817161514131211109876543210
1100010msz00imm5111PgZn0prfop
Decode fields Instruction Details Feature
msz
00PRFB (vector plus immediate)FEAT_SVE
01PRFH (vector plus immediate)FEAT_SVE
10PRFW (vector plus immediate)FEAT_SVE
11PRFD (vector plus immediate)FEAT_SVE

SVE2 64-bit gather non-temporal load (vector plus scalar)

The encodings in this section are decoded from SVE Memory - 64-bit Gather.

313029282726252423222120191817161514131211109876543210
1100010msz00Rm1U0PgZnZt
Decode fields Instruction Details Feature
mszU
000LDNT1SBFEAT_SVE2
001LDNT1B (vector plus scalar)FEAT_SVE2
010LDNT1SHFEAT_SVE2
011LDNT1H (vector plus scalar)FEAT_SVE2
100LDNT1SWFEAT_SVE2
101LDNT1W (vector plus scalar)FEAT_SVE2
110UNALLOCATED-
111LDNT1D (vector plus scalar)FEAT_SVE2

SVE 64-bit gather load (vector plus immediate)

The encodings in this section are decoded from SVE Memory - 64-bit Gather.

313029282726252423222120191817161514131211109876543210
1100010msz01imm51UffPgZnZt
Decode fields Instruction Details Feature
mszUff
0000LD1SB (vector plus immediate)FEAT_SVE
0001LDFF1SB (vector plus immediate)FEAT_SVE
0010LD1B (vector plus immediate)FEAT_SVE
0011LDFF1B (vector plus immediate)FEAT_SVE
0100LD1SH (vector plus immediate)FEAT_SVE
0101LDFF1SH (vector plus immediate)FEAT_SVE
0110LD1H (vector plus immediate)FEAT_SVE
0111LDFF1H (vector plus immediate)FEAT_SVE
1000LD1SW (vector plus immediate)FEAT_SVE
1001LDFF1SW (vector plus immediate)FEAT_SVE
1010LD1W (vector plus immediate)FEAT_SVE
1011LDFF1W (vector plus immediate)FEAT_SVE
110UNALLOCATED-
1110LD1D (vector plus immediate)FEAT_SVE
1111LDFF1D (vector plus immediate)FEAT_SVE

SVE 64-bit gather load (scalar plus 64-bit unscaled offsets)

The encodings in this section are decoded from SVE Memory - 64-bit Gather.

313029282726252423222120191817161514131211109876543210
1100010msz10Zm1UffPgRnZt
Decode fields Instruction Details Feature
mszUff
0000LD1SB (scalar plus vector)FEAT_SVE
0001LDFF1SB (scalar plus vector)FEAT_SVE
0010LD1B (scalar plus vector)FEAT_SVE
0011LDFF1B (scalar plus vector)FEAT_SVE
0100LD1SH (scalar plus vector)FEAT_SVE
0101LDFF1SH (scalar plus vector)FEAT_SVE
0110LD1H (scalar plus vector)FEAT_SVE
0111LDFF1H (scalar plus vector)FEAT_SVE
1000LD1SW (scalar plus vector)FEAT_SVE
1001LDFF1SW (scalar plus vector)FEAT_SVE
1010LD1W (scalar plus vector)FEAT_SVE
1011LDFF1W (scalar plus vector)FEAT_SVE
110UNALLOCATED-
1110LD1D (scalar plus vector)FEAT_SVE
1111LDFF1D (scalar plus vector)FEAT_SVE

SVE 64-bit gather load (scalar plus unpacked 32-bit unscaled offsets)

The encodings in this section are decoded from SVE Memory - 64-bit Gather.

313029282726252423222120191817161514131211109876543210
1100010mszxs0Zm0UffPgRnZt
Decode fields Instruction Details Feature
mszUff
0000LD1SB (scalar plus vector)FEAT_SVE
0001LDFF1SB (scalar plus vector)FEAT_SVE
0010LD1B (scalar plus vector)FEAT_SVE
0011LDFF1B (scalar plus vector)FEAT_SVE
0100LD1SH (scalar plus vector)FEAT_SVE
0101LDFF1SH (scalar plus vector)FEAT_SVE
0110LD1H (scalar plus vector)FEAT_SVE
0111LDFF1H (scalar plus vector)FEAT_SVE
1000LD1SW (scalar plus vector)FEAT_SVE
1001LDFF1SW (scalar plus vector)FEAT_SVE
1010LD1W (scalar plus vector)FEAT_SVE
1011LDFF1W (scalar plus vector)FEAT_SVE
110UNALLOCATED-
1110LD1D (scalar plus vector)FEAT_SVE
1111LDFF1D (scalar plus vector)FEAT_SVE

SVE 64-bit gather load (scalar plus 64-bit scaled offsets)

The encodings in this section are decoded from SVE Memory - 64-bit Gather.

313029282726252423222120191817161514131211109876543210
1100010!= 0011Zm1UffPgRnZt
opc

The following constraints also apply to this encoding: opc != '00'

Decode fields Instruction Details Feature
opcUff
0100LD1SH (scalar plus vector)FEAT_SVE
0101LDFF1SH (scalar plus vector)FEAT_SVE
0110LD1H (scalar plus vector)FEAT_SVE
0111LDFF1H (scalar plus vector)FEAT_SVE
1000LD1SW (scalar plus vector)FEAT_SVE
1001LDFF1SW (scalar plus vector)FEAT_SVE
1010LD1W (scalar plus vector)FEAT_SVE
1011LDFF1W (scalar plus vector)FEAT_SVE
110UNALLOCATED-
1110LD1D (scalar plus vector)FEAT_SVE
1111LDFF1D (scalar plus vector)FEAT_SVE

SVE 64-bit gather load (scalar plus 32-bit unpacked scaled offsets)

The encodings in this section are decoded from SVE Memory - 64-bit Gather.

313029282726252423222120191817161514131211109876543210
1100010!= 00xs1Zm0UffPgRnZt
opc

The following constraints also apply to this encoding: opc != '00'

Decode fields Instruction Details Feature
opcUff
0100LD1SH (scalar plus vector)FEAT_SVE
0101LDFF1SH (scalar plus vector)FEAT_SVE
0110LD1H (scalar plus vector)FEAT_SVE
0111LDFF1H (scalar plus vector)FEAT_SVE
1000LD1SW (scalar plus vector)FEAT_SVE
1001LDFF1SW (scalar plus vector)FEAT_SVE
1010LD1W (scalar plus vector)FEAT_SVE
1011LDFF1W (scalar plus vector)FEAT_SVE
110UNALLOCATED-
1110LD1D (scalar plus vector)FEAT_SVE
1111LDFF1D (scalar plus vector)FEAT_SVE

SVE Memory - Non-temporal and Quadword Scatter Store

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
1110010op0op1001
Decode fields Instruction details Feature
op0op1
000 1 ST1QFEAT_SVE2p1
xx0 0 SVE2 64-bit scatter non-temporal store (vector plus scalar)-
xx1 0 SVE2 32-bit scatter non-temporal store (vector plus scalar)-
!= 000 1 UNALLOCATED-

SVE2 64-bit scatter non-temporal store (vector plus scalar)

The encodings in this section are decoded from SVE Memory - Non-temporal and Quadword Scatter Store.

313029282726252423222120191817161514131211109876543210
1110010msz00Rm001PgZnZt
Decode fields Instruction Details Feature
msz
00STNT1B (vector plus scalar)FEAT_SVE2
01STNT1H (vector plus scalar)FEAT_SVE2
10STNT1W (vector plus scalar)FEAT_SVE2
11STNT1D (vector plus scalar)FEAT_SVE2

SVE2 32-bit scatter non-temporal store (vector plus scalar)

The encodings in this section are decoded from SVE Memory - Non-temporal and Quadword Scatter Store.

313029282726252423222120191817161514131211109876543210
1110010msz10Rm001PgZnZt
Decode fields Instruction Details Feature
msz
00STNT1B (vector plus scalar)FEAT_SVE2
01STNT1H (vector plus scalar)FEAT_SVE2
10STNT1W (vector plus scalar)FEAT_SVE2
11UNALLOCATED-

SVE Memory - Non-temporal and Multi-register Contiguous Store

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
1110010op0011
Decode fields Instruction details
op0
00 SVE contiguous non-temporal store (scalar plus scalar)
!= 00 SVE store multiple structures (scalar plus scalar)

SVE contiguous non-temporal store (scalar plus scalar)

The encodings in this section are decoded from SVE Memory - Non-temporal and Multi-register Contiguous Store.

313029282726252423222120191817161514131211109876543210
1110010msz00Rm011PgRnZt
Decode fields Instruction Details Feature
mszRm
11111UNALLOCATED-
00!= 11111STNT1B (scalar plus scalar, single register)FEAT_SVE || FEAT_SME
01!= 11111STNT1H (scalar plus scalar, single register)FEAT_SVE || FEAT_SME
10!= 11111STNT1W (scalar plus scalar, single register)FEAT_SVE || FEAT_SME
11!= 11111STNT1D (scalar plus scalar, single register)FEAT_SVE || FEAT_SME

SVE store multiple structures (scalar plus scalar)

The encodings in this section are decoded from SVE Memory - Non-temporal and Multi-register Contiguous Store.

313029282726252423222120191817161514131211109876543210
1110010msz!= 00Rm011PgRnZt
opc

The following constraints also apply to this encoding: opc != '00'

Decode fields Instruction Details Feature
mszopcRm
!= 0011111UNALLOCATED-
0001!= 11111ST2B (scalar plus scalar)FEAT_SVE || FEAT_SME
0010!= 11111ST3B (scalar plus scalar)FEAT_SVE || FEAT_SME
0011!= 11111ST4B (scalar plus scalar)FEAT_SVE || FEAT_SME
0101!= 11111ST2H (scalar plus scalar)FEAT_SVE || FEAT_SME
0110!= 11111ST3H (scalar plus scalar)FEAT_SVE || FEAT_SME
0111!= 11111ST4H (scalar plus scalar)FEAT_SVE || FEAT_SME
1001!= 11111ST2W (scalar plus scalar)FEAT_SVE || FEAT_SME
1010!= 11111ST3W (scalar plus scalar)FEAT_SVE || FEAT_SME
1011!= 11111ST4W (scalar plus scalar)FEAT_SVE || FEAT_SME
1101!= 11111ST2D (scalar plus scalar)FEAT_SVE || FEAT_SME
1110!= 11111ST3D (scalar plus scalar)FEAT_SVE || FEAT_SME
1111!= 11111ST4D (scalar plus scalar)FEAT_SVE || FEAT_SME

SVE Memory - Contiguous Store and Unsized Contiguous

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
1110010op0op10op20op3
Decode fields Instruction details Feature
op0op1op2op3
0xx 00 0 SVE store multiple structures (quadwords, scalar plus immediate)-
0xx 01 0 UNALLOCATED-
0xx 1x 0 SVE store multiple structures (quadwords, scalar plus scalar)-
10x 0 UNALLOCATED-
110 0 0 STR (predicate)FEAT_SVE || FEAT_SME
110 0 1 UNALLOCATED-
110 1 STR (vector)FEAT_SVE || FEAT_SME
111 0 UNALLOCATED-
!= 110 1 SVE contiguous store (scalar plus scalar)-

SVE store multiple structures (quadwords, scalar plus immediate)

The encodings in this section are decoded from SVE Memory - Contiguous Store and Unsized Contiguous.

313029282726252423222120191817161514131211109876543210
11100100num00imm4000PgRnZt
Decode fields Instruction Details Feature
num
00UNALLOCATED-
01ST2Q (scalar plus immediate)FEAT_SVE2p1 || FEAT_SME2p1
10ST3Q (scalar plus immediate)FEAT_SVE2p1 || FEAT_SME2p1
11ST4Q (scalar plus immediate)FEAT_SVE2p1 || FEAT_SME2p1

SVE store multiple structures (quadwords, scalar plus scalar)

The encodings in this section are decoded from SVE Memory - Contiguous Store and Unsized Contiguous.

313029282726252423222120191817161514131211109876543210
11100100num1Rm000PgRnZt
Decode fields Instruction Details Feature
numRm
00UNALLOCATED-
01!= 11111ST2Q (scalar plus scalar)FEAT_SVE2p1 || FEAT_SME2p1
10!= 11111ST3Q (scalar plus scalar)FEAT_SVE2p1 || FEAT_SME2p1
11!= 11111ST4Q (scalar plus scalar)FEAT_SVE2p1 || FEAT_SME2p1
!= 0011111UNALLOCATED-

SVE contiguous store (scalar plus scalar)

The encodings in this section are decoded from SVE Memory - Contiguous Store and Unsized Contiguous.

313029282726252423222120191817161514131211109876543210
1110010!= 110o2Rm010PgRnZt
opc

The following constraints also apply to this encoding: opc != '110'

Decode fields Instruction Details Feature
opco2Rm
0xxxx111111UNALLOCATED-
0x011111UNALLOCATED-
00x!= 11111ST1B (scalar plus scalar, single register)FEAT_SVE || FEAT_SME
01x!= 11111ST1H (scalar plus scalar, single register)FEAT_SVE || FEAT_SME
10x100011111UNALLOCATED-
1000!= 11111ST1W (scalar plus scalar, single register)SVE2FEAT_SVE2p1
1001UNALLOCATED-
101!= 11111ST1W (scalar plus scalar, single register)SVEFEAT_SVE || FEAT_SME
101111111UNALLOCATED-
11111111UNALLOCATED-
1110!= 11111ST1D (scalar plus scalar, single register)SVE2FEAT_SVE2p1
1111!= 11111ST1D (scalar plus scalar, single register)SVEFEAT_SVE || FEAT_SME

SVE Memory - Scatter

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
1110010op0101
Decode fields Instruction details
op0
00 SVE 64-bit scatter store (scalar plus 64-bit unscaled offsets)
01 SVE 64-bit scatter store (scalar plus 64-bit scaled offsets)
10 SVE 64-bit scatter store (vector plus immediate)
11 SVE 32-bit scatter store (vector plus immediate)

SVE 64-bit scatter store (scalar plus 64-bit unscaled offsets)

The encodings in this section are decoded from SVE Memory - Scatter.

313029282726252423222120191817161514131211109876543210
1110010msz00Zm101PgRnZt
Decode fields Instruction Details Feature
msz
00ST1B (scalar plus vector)FEAT_SVE
01ST1H (scalar plus vector)FEAT_SVE
10ST1W (scalar plus vector)FEAT_SVE
11ST1D (scalar plus vector)FEAT_SVE

SVE 64-bit scatter store (scalar plus 64-bit scaled offsets)

The encodings in this section are decoded from SVE Memory - Scatter.

313029282726252423222120191817161514131211109876543210
1110010msz01Zm101PgRnZt
Decode fields Instruction Details Feature
msz
00UNALLOCATED-
01ST1H (scalar plus vector)FEAT_SVE
10ST1W (scalar plus vector)FEAT_SVE
11ST1D (scalar plus vector)FEAT_SVE

SVE 64-bit scatter store (vector plus immediate)

The encodings in this section are decoded from SVE Memory - Scatter.

313029282726252423222120191817161514131211109876543210
1110010msz10imm5101PgZnZt
Decode fields Instruction Details Feature
msz
00ST1B (vector plus immediate)FEAT_SVE
01ST1H (vector plus immediate)FEAT_SVE
10ST1W (vector plus immediate)FEAT_SVE
11ST1D (vector plus immediate)FEAT_SVE

SVE 32-bit scatter store (vector plus immediate)

The encodings in this section are decoded from SVE Memory - Scatter.

313029282726252423222120191817161514131211109876543210
1110010msz11imm5101PgZnZt
Decode fields Instruction Details Feature
msz
00ST1B (vector plus immediate)FEAT_SVE
01ST1H (vector plus immediate)FEAT_SVE
10ST1W (vector plus immediate)FEAT_SVE
11UNALLOCATED-

SVE Memory - Contiguous Store with Immediate Offset

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
1110010op0op1111
Decode fields Instruction details
op0op1
00 1 SVE contiguous non-temporal store (scalar plus immediate)
0 SVE contiguous store (scalar plus immediate)
!= 00 1 SVE store multiple structures (scalar plus immediate)

SVE contiguous non-temporal store (scalar plus immediate)

The encodings in this section are decoded from SVE Memory - Contiguous Store with Immediate Offset.

313029282726252423222120191817161514131211109876543210
1110010msz001imm4111PgRnZt
Decode fields Instruction Details Feature
msz
00STNT1B (scalar plus immediate, single register)FEAT_SVE || FEAT_SME
01STNT1H (scalar plus immediate, single register)FEAT_SVE || FEAT_SME
10STNT1W (scalar plus immediate, single register)FEAT_SVE || FEAT_SME
11STNT1D (scalar plus immediate, single register)FEAT_SVE || FEAT_SME

SVE contiguous store (scalar plus immediate)

The encodings in this section are decoded from SVE Memory - Contiguous Store with Immediate Offset.

313029282726252423222120191817161514131211109876543210
1110010mszopc0imm4111PgRnZt
Decode fields Instruction Details Feature
mszopc
00ST1B (scalar plus immediate, single register)FEAT_SVE || FEAT_SME
01ST1H (scalar plus immediate, single register)FEAT_SVE || FEAT_SME
1000ST1W (scalar plus immediate, single register)SVE2FEAT_SVE2p1
1001UNALLOCATED-
101xST1W (scalar plus immediate, single register)SVEFEAT_SVE || FEAT_SME
110xUNALLOCATED-
1110ST1D (scalar plus immediate, single register)SVE2FEAT_SVE2p1
1111ST1D (scalar plus immediate, single register)SVEFEAT_SVE || FEAT_SME

SVE store multiple structures (scalar plus immediate)

The encodings in this section are decoded from SVE Memory - Contiguous Store with Immediate Offset.

313029282726252423222120191817161514131211109876543210
1110010msz!= 001imm4111PgRnZt
opc

The following constraints also apply to this encoding: opc != '00'

Decode fields Instruction Details Feature
mszopc
0001ST2B (scalar plus immediate)FEAT_SVE || FEAT_SME
0010ST3B (scalar plus immediate)FEAT_SVE || FEAT_SME
0011ST4B (scalar plus immediate)FEAT_SVE || FEAT_SME
0101ST2H (scalar plus immediate)FEAT_SVE || FEAT_SME
0110ST3H (scalar plus immediate)FEAT_SVE || FEAT_SME
0111ST4H (scalar plus immediate)FEAT_SVE || FEAT_SME
1001ST2W (scalar plus immediate)FEAT_SVE || FEAT_SME
1010ST3W (scalar plus immediate)FEAT_SVE || FEAT_SME
1011ST4W (scalar plus immediate)FEAT_SVE || FEAT_SME
1101ST2D (scalar plus immediate)FEAT_SVE || FEAT_SME
1110ST3D (scalar plus immediate)FEAT_SVE || FEAT_SME
1111ST4D (scalar plus immediate)FEAT_SVE || FEAT_SME

SVE Memory - Scatter with Optional Sign Extend

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
1110010op010
Decode fields Instruction details
op0
00 SVE 64-bit scatter store (scalar plus unpacked 32-bit unscaled offsets)
01 SVE 64-bit scatter store (scalar plus unpacked 32-bit scaled offsets)
10 SVE 32-bit scatter store (scalar plus 32-bit unscaled offsets)
11 SVE 32-bit scatter store (scalar plus 32-bit scaled offsets)

SVE 64-bit scatter store (scalar plus unpacked 32-bit unscaled offsets)

The encodings in this section are decoded from SVE Memory - Scatter with Optional Sign Extend.

313029282726252423222120191817161514131211109876543210
1110010msz00Zm1xs0PgRnZt
Decode fields Instruction Details Feature
msz
00ST1B (scalar plus vector)FEAT_SVE
01ST1H (scalar plus vector)FEAT_SVE
10ST1W (scalar plus vector)FEAT_SVE
11ST1D (scalar plus vector)FEAT_SVE

SVE 64-bit scatter store (scalar plus unpacked 32-bit scaled offsets)

The encodings in this section are decoded from SVE Memory - Scatter with Optional Sign Extend.

313029282726252423222120191817161514131211109876543210
1110010msz01Zm1xs0PgRnZt
Decode fields Instruction Details Feature
msz
00UNALLOCATED-
01ST1H (scalar plus vector)FEAT_SVE
10ST1W (scalar plus vector)FEAT_SVE
11ST1D (scalar plus vector)FEAT_SVE

SVE 32-bit scatter store (scalar plus 32-bit unscaled offsets)

The encodings in this section are decoded from SVE Memory - Scatter with Optional Sign Extend.

313029282726252423222120191817161514131211109876543210
1110010msz10Zm1xs0PgRnZt
Decode fields Instruction Details Feature
msz
00ST1B (scalar plus vector)FEAT_SVE
01ST1H (scalar plus vector)FEAT_SVE
10ST1W (scalar plus vector)FEAT_SVE
11UNALLOCATED-

SVE 32-bit scatter store (scalar plus 32-bit scaled offsets)

The encodings in this section are decoded from SVE Memory - Scatter with Optional Sign Extend.

313029282726252423222120191817161514131211109876543210
1110010msz11Zm1xs0PgRnZt
Decode fields Instruction Details Feature
msz
00UNALLOCATED-
01ST1H (scalar plus vector)FEAT_SVE
10ST1W (scalar plus vector)FEAT_SVE
11UNALLOCATED-

SVE integer add/subtract vectors (unpredicated)

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
00000100size1Zm000opcZnZd
Decode fields Instruction Details Feature
sizeopc
000ADD (vectors, unpredicated)FEAT_SVE || FEAT_SME
001SUB (vectors, unpredicated)FEAT_SVE || FEAT_SME
100SQADD (vectors, unpredicated)FEAT_SVE || FEAT_SME
101UQADD (vectors, unpredicated)FEAT_SVE || FEAT_SME
110SQSUB (vectors, unpredicated)FEAT_SVE || FEAT_SME
111UQSUB (vectors, unpredicated)FEAT_SVE || FEAT_SME
11010ADDPT (unpredicated)FEAT_SVE && FEAT_CPA
11011SUBPT (unpredicated)FEAT_SVE && FEAT_CPA
!= 1101xUNALLOCATED-

SVE address generation

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
00000100opc1Zm1010mszZnZd
Decode fields Instruction Details Feature
opc
00ADRUnpacked 32-bit signed offsetsFEAT_SVE
01ADRUnpacked 32-bit unsigned offsetsFEAT_SVE
1xADRPacked offsetsFEAT_SVE

SVE table lookup (three sources)

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
00000101size1Zm00101opZnZd
Decode fields Instruction Details Feature
op
0TBLFEAT_SVE2 || FEAT_SME
1TBXFEAT_SVE2 || FEAT_SME

SVE permute vector elements

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
00000101size1Zm011opcZnZd
Decode fields Instruction Details Feature
opc
000ZIP1, ZIP2 (vectors)Low halvesFEAT_SVE || FEAT_SME
001ZIP1, ZIP2 (vectors)High halvesFEAT_SVE || FEAT_SME
010UZP1, UZP2 (vectors)EvenFEAT_SVE || FEAT_SME
011UZP1, UZP2 (vectors)OddFEAT_SVE || FEAT_SME
100TRN1, TRN2 (vectors)EvenFEAT_SVE || FEAT_SME
101TRN1, TRN2 (vectors)OddFEAT_SVE || FEAT_SME
11xUNALLOCATED-

SVE integer compare with unsigned immediate

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
001001001imm7ltPgZnnePd
Decode fields Instruction Details Feature
ltne
00CMP<cc> (immediate)Higher or sameFEAT_SVE || FEAT_SME
01CMP<cc> (immediate)HigherFEAT_SVE || FEAT_SME
10CMP<cc> (immediate)LowerFEAT_SVE || FEAT_SME
11CMP<cc> (immediate)Lower or sameFEAT_SVE || FEAT_SME

SVE predicate logical operations

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
00100101opS00Pm01Pgo2Pno3Pd
Decode fields Instruction Details Feature
opSo2o3
0000AND (predicates)FEAT_SVE || FEAT_SME
0001BIC (predicates)FEAT_SVE || FEAT_SME
0010EOR (predicates)FEAT_SVE || FEAT_SME
0011SEL (predicates)FEAT_SVE || FEAT_SME
0100ANDSFEAT_SVE || FEAT_SME
0101BICSFEAT_SVE || FEAT_SME
0110EORSFEAT_SVE || FEAT_SME
0111UNALLOCATED-
1000ORR (predicates)FEAT_SVE || FEAT_SME
1001ORN (predicates)FEAT_SVE || FEAT_SME
1010NORFEAT_SVE || FEAT_SME
1011NANDFEAT_SVE || FEAT_SME
1100ORRSFEAT_SVE || FEAT_SME
1101ORNSFEAT_SVE || FEAT_SME
1110NORSFEAT_SVE || FEAT_SME
1111NANDSFEAT_SVE || FEAT_SME

SVE integer compare with signed immediate

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
00100101size0imm5op0o2PgZnnePd
Decode fields Instruction Details Feature
opo2ne
000CMP<cc> (immediate)Greater than or equalFEAT_SVE || FEAT_SME
001CMP<cc> (immediate)Greater thanFEAT_SVE || FEAT_SME
010CMP<cc> (immediate)Less thanFEAT_SVE || FEAT_SME
011CMP<cc> (immediate)Less than or equalFEAT_SVE || FEAT_SME
100CMP<cc> (immediate)EqualFEAT_SVE || FEAT_SME
101CMP<cc> (immediate)Not equalFEAT_SVE || FEAT_SME
11UNALLOCATED-

SVE broadcast predicate element

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
00100101i1tszh1tszlRv01PnSPm0Pd
Decode fields Instruction Details Feature
S
0PSELFEAT_SME || FEAT_SVE2p1
1UNALLOCATED-

SVE two-way dot product

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
01000100000Zm11001UZnZda
Decode fields Instruction Details Feature
U
0SDOT (2-way, vectors)FEAT_SME2 || FEAT_SVE2p1
1UDOT (2-way, vectors)FEAT_SME2 || FEAT_SVE2p1

SVE two-way dot product (indexed)

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
01000100100opc11001UZnZda
Decode fields Instruction Details Feature
U
0SDOT (2-way, indexed)FEAT_SME2 || FEAT_SVE2p1
1UDOT (2-way, indexed)FEAT_SME2 || FEAT_SVE2p1

SVE integer clamp

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
01000100size0Zm11000UZnZd
Decode fields Instruction Details Feature
U
0SCLAMPFEAT_SME || FEAT_SVE2p1
1UCLAMPFEAT_SME || FEAT_SVE2p1

SVE2 multiply-add (checked pointer)

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
01000100opc0Zm1101o20ZnZda
Decode fields Instruction Details Feature
opco2
110MLAPTFEAT_SVE && FEAT_CPA
111MADPTFEAT_SVE && FEAT_CPA
!= 11UNALLOCATED-

SVE2 absolute difference and accumulate long

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
01000100size0Zm1101U1ZnZda
Decode fields Instruction Details Feature
U
0SABALFEAT_SVE2p3 || FEAT_SME2p3
1UABALFEAT_SVE2p3 || FEAT_SME2p3

SVE permute vector elements (quadwords)

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
01000100size0Zm111opcZnZd
Decode fields Instruction Details Feature
opc
000ZIPQ1FEAT_SVE2p1 || FEAT_SME2p1
001ZIPQ2FEAT_SVE2p1 || FEAT_SME2p1
010UZPQ1FEAT_SVE2p1 || FEAT_SME2p1
011UZPQ2FEAT_SVE2p1 || FEAT_SME2p1
10xUNALLOCATED-
110TBLQFEAT_SVE2p1 || FEAT_SME2p1
111UNALLOCATED-

SVE2 character match

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
01000101size1Zm100PgZnopPd
Decode fields Instruction Details Feature
op
0MATCHFEAT_SVE2
1NMATCHFEAT_SVE2

SVE2 FP8 matrix multiply-accumulate

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
011001000op1Zm111000ZnZda
Decode fields Instruction Details Feature
op
0FMMLA (widening, FP8 to FP32)FEAT_SVE2 && FEAT_F8F32MM
1FMMLA (widening, FP8 to FP16)FEAT_SVE2 && FEAT_F8F16MM

SVE2 floating-point non-widening matrix-multiply accumulate

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
011001001op1Zm111000ZnZda
Decode fields Instruction Details Feature
op
0FMMLA (non-widening)FEAT_SVE2p2 && FEAT_F16MM
1BFMMLA (non-widening)FEAT_SVE_B16MM

SVE2 FP8 multiply-add long (indexed)

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
01100100T01i4hZm0101i4lZnZda
Decode fields Instruction Details Feature
T
0FMLALB (indexed, FP8 to FP16)FEAT_SSVE_FP8FMA || (FEAT_SVE2 && FEAT_FP8FMA)
1FMLALT (indexed, FP8 to FP16)FEAT_SSVE_FP8FMA || (FEAT_SVE2 && FEAT_FP8FMA)

SVE floating-point convert (top, predicated)

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
01100100opc0000opc2101PgZnZd
Decode fields Instruction Details Feature
opcopc2
x011UNALLOCATED-
000xUNALLOCATED-
0010FCVTXNTFEAT_SVE2p2 || FEAT_SME2p2
01UNALLOCATED-
1000FCVTNT (predicated)Single-precision to half-precision, zeroingFEAT_SVE2p2 || FEAT_SME2p2
1001FCVTLTHalf-precision to single-precision, zeroingFEAT_SVE2p2 || FEAT_SME2p2
1010BFCVTNTFEAT_SVE2p2 || FEAT_SME2p2
110xUNALLOCATED-
1110FCVTNT (predicated)Double-precision to single-precision, zeroingFEAT_SVE2p2 || FEAT_SME2p2
1111FCVTLTSingle-precision to double-precision, zeroingFEAT_SVE2p2 || FEAT_SME2p2

SVE floating-point convert precision odd elements

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
01100100opc0010opc2101PgZnZd
Decode fields Instruction Details Feature
opcopc2
x011UNALLOCATED-
000xUNALLOCATED-
0010FCVTXNTFEAT_SVE2 || FEAT_SME
01UNALLOCATED-
1000FCVTNT (predicated)Single-precision to half-precision, mergingFEAT_SVE2 || FEAT_SME
1001FCVTLTHalf-precision to single-precision, mergingFEAT_SVE2 || FEAT_SME
1010BFCVTNT(FEAT_SVE && FEAT_BF16) || (FEAT_SME && FEAT_BF16)
110xUNALLOCATED-
1110FCVTNT (predicated)Double-precision to single-precision, mergingFEAT_SVE2 || FEAT_SME
1111FCVTLTSingle-precision to double-precision, mergingFEAT_SVE2 || FEAT_SME

SVE2 floating-point pairwise operations

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
01100100010opc100PgZmZdn
Decode fields Instruction Details Feature
opc
000FADDPFEAT_SVE2 || FEAT_SME
001UNALLOCATED-
01xUNALLOCATED-
100FMAXNMPFEAT_SVE2 || FEAT_SME
101FMINNMPFEAT_SVE2 || FEAT_SME
110FMAXPFEAT_SVE2 || FEAT_SME
111FMINPFEAT_SVE2 || FEAT_SME

SVE floating-point recursive reduction (quadwords)

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
01100100size010opc101PgZnVd
Decode fields Instruction Details Feature
opc
000FADDQVFEAT_SVE2p1 || FEAT_SME2p1
001UNALLOCATED-
01xUNALLOCATED-
100FMAXNMQVFEAT_SVE2p1 || FEAT_SME2p1
101FMINNMQVFEAT_SVE2p1 || FEAT_SME2p1
110FMAXQVFEAT_SVE2p1 || FEAT_SME2p1
111FMINQVFEAT_SVE2p1 || FEAT_SME2p1

SVE floating-point multiply-add (indexed)

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
01100100size1opc0000o2opZnZda
Decode fields Instruction Details Feature
sizeo2op
0x00FMLA (indexed)Half-precisionFEAT_SVE || FEAT_SME
0x01FMLS (indexed)Half-precisionFEAT_SVE || FEAT_SME
0x10BFMLA (indexed)FEAT_SVE_B16B16
0x11BFMLS (indexed)FEAT_SVE_B16B16
1x1UNALLOCATED-
1000FMLA (indexed)Single-precisionFEAT_SVE || FEAT_SME
1001FMLS (indexed)Single-precisionFEAT_SVE || FEAT_SME
1100FMLA (indexed)Double-precisionFEAT_SVE || FEAT_SME
1101FMLS (indexed)Double-precisionFEAT_SVE || FEAT_SME

SVE floating-point complex multiply-add (indexed)

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
01100100size1opc0001rotZnZda
Decode fields Instruction Details Feature
size
0xUNALLOCATED-
10FCMLA (indexed)Half-precisionFEAT_SVE || FEAT_SME
11FCMLA (indexed)Single-precisionFEAT_SVE || FEAT_SME

SVE FP clamp

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
01100100size1Zm001001ZnZd
Decode fields Instruction Details Feature
size
00BFCLAMPFEAT_SVE_B16B16
!= 00FCLAMPFEAT_SME2 || FEAT_SVE2p1

SVE floating-point multiply (indexed)

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
01100100size1opc0010o20ZnZd
Decode fields Instruction Details Feature
sizeo2
0x0FMUL (indexed)Half-precisionFEAT_SVE || FEAT_SME
0x1BFMUL (indexed)FEAT_SVE_B16B16
1x1UNALLOCATED-
100FMUL (indexed)Single-precisionFEAT_SVE || FEAT_SME
110FMUL (indexed)Double-precisionFEAT_SVE || FEAT_SME

SVE2 FP8 multiply-add long long (indexed)

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
01100100TT1i4hZm1100i4lZnZda
Decode fields Instruction Details Feature
TT
00FMLALLBB (indexed)FEAT_SSVE_FP8FMA || (FEAT_SVE2 && FEAT_FP8FMA)
01FMLALLBT (indexed)FEAT_SSVE_FP8FMA || (FEAT_SVE2 && FEAT_FP8FMA)
10FMLALLTB (indexed)FEAT_SSVE_FP8FMA || (FEAT_SVE2 && FEAT_FP8FMA)
11FMLALLTT (indexed)FEAT_SSVE_FP8FMA || (FEAT_SVE2 && FEAT_FP8FMA)

SVE floating-point matrix multiply accumulate

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
01100100opc1Zm111001ZnZda
Decode fields Instruction Details Feature
opc
00FMMLA (widening, FP16 to FP32)FEAT_SVE_F16F32MM
01BFMMLA (widening)FEAT_SVE && FEAT_BF16
10FMMLA (non-widening)32-bit elementFEAT_F32MM
11FMMLA (non-widening)64-bit elementFEAT_F64MM

SVE floating-point recursive reduction

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
01100101size000opc001PgZnVd
Decode fields Instruction Details Feature
opc
000FADDVFEAT_SVE || FEAT_SME
001UNALLOCATED-
01xUNALLOCATED-
100FMAXNMVFEAT_SVE || FEAT_SME
101FMINNMVFEAT_SVE || FEAT_SME
110FMAXVFEAT_SVE || FEAT_SME
111FMINVFEAT_SVE || FEAT_SME

SVE floating-point arithmetic (unpredicated)

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
01100101size0Zm000opcZnZd
Decode fields Instruction Details Feature
sizeopc
011FTSMULFEAT_SVE
10xUNALLOCATED-
110FRECPSFEAT_SVE || FEAT_SME
111FRSQRTSFEAT_SVE || FEAT_SME
00000BFADD (unpredicated)FEAT_SVE_B16B16
00001BFSUB (unpredicated)FEAT_SVE_B16B16
00010BFMUL (vectors, unpredicated)FEAT_SVE_B16B16
!= 00000FADD (vectors, unpredicated)FEAT_SVE || FEAT_SME
!= 00001FSUB (vectors, unpredicated)FEAT_SVE || FEAT_SME
!= 00010FMUL (vectors, unpredicated)FEAT_SVE || FEAT_SME

SVE floating-point compare vectors

The encodings in this section are decoded from SVE encodings.

313029282726252423222120191817161514131211109876543210
01100101size0Zmop1o2PgZno3Pd
Decode fields Instruction Details Feature
opo2o3
000FCM<cc> (vectors)Greater than or equalFEAT_SVE || FEAT_SME
001FCM<cc> (vectors)Greater thanFEAT_SVE || FEAT_SME
010FCM<cc> (vectors)EqualFEAT_SVE || FEAT_SME
011FCM<cc> (vectors)Not equalFEAT_SVE || FEAT_SME
100FCM<cc> (vectors)UnorderedFEAT_SVE || FEAT_SME
101FAC<cc>Greater than or equalFEAT_SVE || FEAT_SME
110UNALLOCATED-
111FAC<cc>Greater thanFEAT_SVE || FEAT_SME

Data Processing -- Immediate

The encodings in this section are decoded from A64 instruction set encoding.

313029282726252423222120191817161514131211109876543210
op0100op1
Decode fields Instruction details
op0op1
11 111x Data-processing (1 source immediate)
00xx PC-rel. addressing
010x Add/subtract (immediate)
0110 Add/subtract (immediate, with tags)
0111 Min/max (immediate)
100x Logical (immediate)
101x Move wide (immediate)
110x Bitfield
!= 11 111x Extract

Data-processing (1 source immediate)

The encodings in this section are decoded from Data Processing -- Immediate.

313029282726252423222120191817161514131211109876543210
sf11100111opcimm16Rd
Decode fields Instruction Details Feature
sfopcRd
0UNALLOCATED-
10x!= 11111UNALLOCATED-
10011111AUTIASPPCFEAT_PAuth_LR
10111111AUTIBSPPCFEAT_PAuth_LR
11xUNALLOCATED-

PC-rel. addressing

The encodings in this section are decoded from Data Processing -- Immediate.

313029282726252423222120191817161514131211109876543210
opimmlo10000immhiRd
Decode fields Instruction Details
op
0ADR
1ADRP

Add/subtract (immediate)

The encodings in this section are decoded from Data Processing -- Immediate.

313029282726252423222120191817161514131211109876543210
sfopS100010shimm12RnRd
Decode fields Instruction Details
sfopS
000ADD (immediate)32-bit
001ADDS (immediate)32-bit
010SUB (immediate)32-bit
011SUBS (immediate)32-bit
100ADD (immediate)64-bit
101ADDS (immediate)64-bit
110SUB (immediate)64-bit
111SUBS (immediate)64-bit

Add/subtract (immediate, with tags)

The encodings in this section are decoded from Data Processing -- Immediate.

313029282726252423222120191817161514131211109876543210
sfopS1000110imm6op3imm4RnRd
Decode fields Instruction Details Feature
sfopS
0UNALLOCATED-
11UNALLOCATED-
100ADDGFEAT_MTE
110SUBGFEAT_MTE

Min/max (immediate)

The encodings in this section are decoded from Data Processing -- Immediate.

313029282726252423222120191817161514131211109876543210
sfopS1000111opcimm8RnRd
Decode fields Instruction Details Feature
sfopSopc
001xxxUNALLOCATED-
00!= 00xx01xxUNALLOCATED-
01UNALLOCATED-
1UNALLOCATED-
0000000SMAX (immediate)32-bitFEAT_CSSC
0000001UMAX (immediate)32-bitFEAT_CSSC
0000010SMIN (immediate)32-bitFEAT_CSSC
0000011UMIN (immediate)32-bitFEAT_CSSC
1000000SMAX (immediate)64-bitFEAT_CSSC
1000001UMAX (immediate)64-bitFEAT_CSSC
1000010SMIN (immediate)64-bitFEAT_CSSC
1000011UMIN (immediate)64-bitFEAT_CSSC

Logical (immediate)

The encodings in this section are decoded from Data Processing -- Immediate.

313029282726252423222120191817161514131211109876543210
sfopc100100NimmrimmsRnRd
Decode fields Instruction Details
sfopcN
01UNALLOCATED
0000AND (immediate)32-bit
0010ORR (immediate)32-bit
0100EOR (immediate)32-bit
0110ANDS (immediate)32-bit
100AND (immediate)64-bit
101ORR (immediate)64-bit
110EOR (immediate)64-bit
111ANDS (immediate)64-bit

Move wide (immediate)

The encodings in this section are decoded from Data Processing -- Immediate.

313029282726252423222120191817161514131211109876543210
sfopc100101hwimm16Rd
Decode fields Instruction Details
sfopchw
010xUNALLOCATED
01xUNALLOCATED
0000xMOVN32-bit
0100xMOVZ32-bit
0110xMOVK32-bit
100MOVN64-bit
1011xUNALLOCATED
110MOVZ64-bit
111MOVK64-bit

Bitfield

The encodings in this section are decoded from Data Processing -- Immediate.

313029282726252423222120191817161514131211109876543210
sfopc100110NimmrimmsRnRd
Decode fields Instruction Details
sfopcN
01UNALLOCATED
0000SBFM32-bit
0010BFM32-bit
0100UBFM32-bit
0110UNALLOCATED
10UNALLOCATED
1001SBFM64-bit
1011BFM64-bit
1101UBFM64-bit
1111UNALLOCATED

Extract

The encodings in this section are decoded from Data Processing -- Immediate.

313029282726252423222120191817161514131211109876543210
sf!= 11100111No0RmimmsRnRd
op21

The following constraints also apply to this encoding: op21 != '11'

Decode fields Instruction Details
sfop21No0imms
001UNALLOCATED
01UNALLOCATED
10UNALLOCATED
000000xxxxxEXTR32-bit
000001xxxxxUNALLOCATED
00010UNALLOCATED
10000UNALLOCATED
10010EXTR64-bit

Branches, Exception Generating and System instructions

The encodings in this section are decoded from A64 instruction set encoding.

313029282726252423222120191817161514131211109876543210
op0101op1op2
Decode fields Instruction details
op0op1op2
010 00xxxxxxxxxxxx Conditional branch (immediate)
010 01xxxxxxxxxxxx Miscellaneous branch (immediate)
011 00xxxxxxxx1xxx Compare bytes/halfwords in registers and branch
01x 1xxxxxxxxxxxxx UNALLOCATED
110 00xxxxxxxxxxxx Exception generation
110 010000000x00xx UNALLOCATED
110 010000001000xx UNALLOCATED
110 01000000110000 UNALLOCATED
110 01000000110001 System instructions with register argument
110 01000000110010 11111 Hints
110 01000000110010 != 11111 UNALLOCATED
110 01000000110011 Barriers
110 01000001xx00xx UNALLOCATED
110 0100000xxx0100 PSTATE
110 0100000xxx0101 UNALLOCATED
110 0100000xxx011x UNALLOCATED
110 0100000xxx1xxx UNALLOCATED
110 0100100xxxxxxx UNALLOCATED
110 0100x01xxxxxxx System instructions
110 0100x1xxxxxxxx System register move
110 0101x00xxxxxxx UNALLOCATED
110 0101x01xxxxxxx System pair instructions
110 0101x1xxxxxxxx System register pair move
110 011xxxxxxxxxxx UNALLOCATED
110 1xxxxxxxxxxxxx Unconditional branch (register)
111 00xxxxxxxx1xxx UNALLOCATED
111 1xxxxxxxxxxxxx UNALLOCATED
x00 Unconditional branch (immediate)
x01 0xxxxxxxxxxxxx Compare and branch (immediate)
x01 1xxxxxxxxxxxxx Test and branch (immediate)
x11 00xxxxxxxx00xx Compare registers and branch
x11 00xxxxxxxx01xx UNALLOCATED
x11 01xxxxxxxxx0xx Compare register with immediate and branch
x11 01xxxxxxxxx1xx UNALLOCATED

Conditional branch (immediate)

The encodings in this section are decoded from Branches, Exception Generating and System instructions.

313029282726252423222120191817161514131211109876543210
01010100imm19o0cond
Decode fields Instruction Details Feature
o0
0B.cond-
1BC.condFEAT_HBC

Miscellaneous branch (immediate)

The encodings in this section are decoded from Branches, Exception Generating and System instructions.

313029282726252423222120191817161514131211109876543210
01010101opcimm16op2
Decode fields Instruction Details Feature
opcop2
00x!= 11111UNALLOCATED-
00011111RETAASPPC, RETABSPPCRETAASPPCFEAT_PAuth_LR
00111111RETAASPPC, RETABSPPCRETABSPPCFEAT_PAuth_LR
1xxUNALLOCATED-
!= 00x01xUNALLOCATED-

Compare bytes/halfwords in registers and branch

The encodings in this section are decoded from Branches, Exception Generating and System instructions.

313029282726252423222120191817161514131211109876543210
01110100ccRm1Himm9Rt
Decode fields Instruction Details Feature
ccH
0000CBB<cc>Greater thanFEAT_CMPBR
0001CBH<cc>Greater thanFEAT_CMPBR
0010CBB<cc>Greater than or equalFEAT_CMPBR
0011CBH<cc>Greater than or equalFEAT_CMPBR
0100CBB<cc>HigherFEAT_CMPBR
0101CBH<cc>HigherFEAT_CMPBR
0110CBB<cc>Higher or sameFEAT_CMPBR
0111CBH<cc>Higher or sameFEAT_CMPBR
10xUNALLOCATED-
1100CBB<cc>EqualFEAT_CMPBR
1101CBH<cc>EqualFEAT_CMPBR
1110CBB<cc>Not equalFEAT_CMPBR
1111CBH<cc>Not equalFEAT_CMPBR

Exception generation

The encodings in this section are decoded from Branches, Exception Generating and System instructions.

313029282726252423222120191817161514131211109876543210
11010100opcimm16op2LL
Decode fields Instruction Details
opcop2LL
!= 000UNALLOCATED
x11000UNALLOCATED
00000000UNALLOCATED
00000001SVC
00000010HVC
00000011SMC
00100000BRK
001000!= 00UNALLOCATED
01000000HLT
010000!= 00UNALLOCATED
1x0000UNALLOCATED
10100000UNALLOCATED
10100001DCPS1
10100010DCPS2
10100011DCPS3

System instructions with register argument

The encodings in this section are decoded from Branches, Exception Generating and System instructions.

313029282726252423222120191817161514131211109876543210
11010101000000110001CRmop2Rt
Decode fields Instruction Details Feature
CRmop2
0000000WFETFEAT_WFxT
0000001WFITFEAT_WFxT
00001xxUNALLOCATED-
0000!= 00x01xUNALLOCATED-
!= 0000UNALLOCATED-

Hints

The encodings in this section are decoded from Branches, Exception Generating and System instructions.

313029282726252423222120191817161514131211109876543210
11010101000000110010CRmop211111
Decode fields Instruction Details Feature
CRmop2
HINT-
0000000NOP-
0000001YIELD-
0000010WFE-
0000011WFI-
0000100SEV-
0000101SEVL-
0000110DGHFEAT_DGH
0000111XPACD, XPACI, XPACLRIFEAT_PAuth
0001000PACIA, PACIA1716, PACIASP, PACIAZ, PACIZAPACIA1716FEAT_PAuth
0001010PACIB, PACIB1716, PACIBSP, PACIBZ, PACIZBPACIB1716FEAT_PAuth
0001100AUTIA, AUTIA1716, AUTIASP, AUTIAZ, AUTIZAAUTIA1716FEAT_PAuth
0001110AUTIB, AUTIB1716, AUTIBSP, AUTIBZ, AUTIZBAUTIB1716FEAT_PAuth
0010000ESBFEAT_RAS
0010001PSBFEAT_SPE
0010010TSBFEAT_TRF
0010011GCSBFEAT_GCS
0010100CSDB-
0010110CLRBHBFEAT_CLRBHB
0011000PACIA, PACIA1716, PACIASP, PACIAZ, PACIZAPACIAZFEAT_PAuth
0011001PACIA, PACIA1716, PACIASP, PACIAZ, PACIZAPACIASPFEAT_PAuth
0011010PACIB, PACIB1716, PACIBSP, PACIBZ, PACIZBPACIBZFEAT_PAuth
0011011PACIB, PACIB1716, PACIBSP, PACIBZ, PACIZBPACIBSPFEAT_PAuth
0011100AUTIA, AUTIA1716, AUTIASP, AUTIAZ, AUTIZAAUTIAZFEAT_PAuth
0011101AUTIA, AUTIA1716, AUTIASP, AUTIAZ, AUTIZAAUTIASPFEAT_PAuth
0011110AUTIB, AUTIB1716, AUTIBSP, AUTIBZ, AUTIZBAUTIBZFEAT_PAuth
0011111AUTIB, AUTIB1716, AUTIBSP, AUTIBZ, AUTIZBAUTIBSPFEAT_PAuth
0100xx0BTIFEAT_BTI
0100111PACMFEAT_PAuth_LR
0101000CHKFEATFEAT_CHK
011000xSTSHHFEAT_PCDPHINT
011001xSHUHFEAT_CMH
0110100STCPHFEAT_CMH

Barriers

The encodings in this section are decoded from Branches, Exception Generating and System instructions.

313029282726252423222120191817161514131211109876543210
11010101000000110011CRmop2Rt
Decode fields Instruction Details Feature
CRmop2Rt
!= 11111UNALLOCATED-
00011111UNALLOCATED-
01011111CLREX-
10011111DSBMemory barrier-
10111111DMB-
11011111ISB-
11111111SBFEAT_SB
xx0x0x111111UNALLOCATED-
xx1000111111DSBMemory nXS barrierFEAT_XS
xx1001111111UNALLOCATED-
!= xx10xx110x111111UNALLOCATED-

PSTATE

The encodings in this section are decoded from Branches, Exception Generating and System instructions.

313029282726252423222120191817161514131211109876543210
1101010100000op10100CRmop2Rt
Decode fields Instruction Details Feature
op1op2Rt
!= 11111UNALLOCATED-
00000011111CFINVFEAT_FlagM
00000111111XAFLAGFEAT_FlagM2
00001011111AXFLAGFEAT_FlagM2
00001111111MSR (immediate)-
0001xx11111MSR (immediate)-
!= 00011111MSR (immediate)-
Decode fields Instruction Details Feature
op1:op2Rt
0xxxxUNALLOCATED-
10xxxUNALLOCATED-
110xxUNALLOCATED-
1110xUNALLOCATED-
11110UNALLOCATED-
00000011111CFINVFEAT_FlagM
00000111111XAFLAGFEAT_FlagM2
00001011111AXFLAGFEAT_FlagM2
!= 00000x11111MSR (immediate)-

System instructions

The encodings in this section are decoded from Branches, Exception Generating and System instructions.

313029282726252423222120191817161514131211109876543210
1101010100L01op1CRnCRmop2Rt
Decode fields Instruction Details
L
0SYS
1SYSL

System register move

The encodings in this section are decoded from Branches, Exception Generating and System instructions.

313029282726252423222120191817161514131211109876543210
1101010100L1o0op1CRnCRmop2Rt
Decode fields Instruction Details
L
0MSR (register)
1MRS

System pair instructions

The encodings in this section are decoded from Branches, Exception Generating and System instructions.

313029282726252423222120191817161514131211109876543210
1101010101L01op1CRnCRmop2Rt
Decode fields Instruction Details Feature
L
0SYSPFEAT_SYSINSTR128
1UNALLOCATED-

System register pair move

The encodings in this section are decoded from Branches, Exception Generating and System instructions.

313029282726252423222120191817161514131211109876543210
1101010101L1o0op1CRnCRmop2Rt
Decode fields Instruction Details Feature
L
0MSRRFEAT_SYSREG128
1MRRSFEAT_SYSREG128

Unconditional branch (register)

The encodings in this section are decoded from Branches, Exception Generating and System instructions.

313029282726252423222120191817161514131211109876543210
1101011opcop2op3Rnop4
Decode fields Instruction Details Feature
opcop2op3Rnop4
11111001xxxUNALLOCATED-
1111101xxxxUNALLOCATED-
111111xxxxxUNALLOCATED-
11111!= 0000xx0001xxUNALLOCATED-
!= 11111UNALLOCATED-
00x011111000000!= 00000UNALLOCATED-
00x011111000001UNALLOCATED-
000x1111100001x!= 11111UNALLOCATED-
00001111100000000000BR-
00001111100001011111BRAA, BRAAZ, BRAB, BRABZKey A, zero modifierFEAT_PAuth
00001111100001111111BRAA, BRAAZ, BRAB, BRABZKey B, zero modifierFEAT_PAuth
00011111100000000000BLR-
000111111000000!= 00000UNALLOCATED-
000111111000001UNALLOCATED-
00011111100001011111BLRAA, BLRAAZ, BLRAB, BLRABZKey A, zero modifierFEAT_PAuth
00011111100001111111BLRAA, BLRAAZ, BLRAB, BLRABZKey B, zero modifierFEAT_PAuth
00101111100000000000RET-
00101111100001x!= 11111UNALLOCATED-
0010111110000101111111111RETAA, RETABRETAAFEAT_PAuth
00101111100001011111!= 11111RETAASPPCR, RETABSPPCRRETAASPPCRFEAT_PAuth_LR
0010111110000111111111111RETAA, RETABRETABFEAT_PAuth
00101111100001111111!= 11111RETAASPPCR, RETABSPPCRRETABSPPCRFEAT_PAuth_LR
0011111110000xxUNALLOCATED-
010x111110000xx!= 11111UNALLOCATED-
010x1111100000011111!= 00000UNALLOCATED-
010x1111100000111111UNALLOCATED-
010x1111100001x11111xxxx0UNALLOCATED-
0100111110000001111100000ERET-
01001111100001x111110xxx1UNALLOCATED-
01001111100001x1111110xx1UNALLOCATED-
01001111100001x11111110x1UNALLOCATED-
01001111100001x1111111101UNALLOCATED-
0100111110000101111111111ERETAA, ERETABERETAAFEAT_PAuth
0100111110000111111111111ERETAA, ERETABERETABFEAT_PAuth
0101111110000001111100000DRPS-
01011111100001x11111xxxx1UNALLOCATED-
011x111110000xxUNALLOCATED-
100x1111100000xUNALLOCATED-
100011111000010BRAA, BRAAZ, BRAB, BRABZKey A, register modifierFEAT_PAuth
100011111000011BRAA, BRAAZ, BRAB, BRABZKey B, register modifierFEAT_PAuth
100111111000010BLRAA, BLRAAZ, BLRAB, BLRABZKey A, register modifierFEAT_PAuth
100111111000011BLRAA, BLRAAZ, BLRAB, BLRABZKey B, register modifierFEAT_PAuth
101x111110000xxUNALLOCATED-
11xx111110000xxUNALLOCATED-

Unconditional branch (immediate)

The encodings in this section are decoded from Branches, Exception Generating and System instructions.

313029282726252423222120191817161514131211109876543210
op00101imm26
Decode fields Instruction Details
op
0B
1BL

Compare and branch (immediate)

The encodings in this section are decoded from Branches, Exception Generating and System instructions.

313029282726252423222120191817161514131211109876543210
sf011010opimm19Rt
Decode fields Instruction Details
sfop
00CBZ32-bit
01CBNZ32-bit
10CBZ64-bit
11CBNZ64-bit

Test and branch (immediate)

The encodings in this section are decoded from Branches, Exception Generating and System instructions.

313029282726252423222120191817161514131211109876543210
b5011011opb40imm14Rt
Decode fields Instruction Details
op
0TBZ
1TBNZ

Compare registers and branch

The encodings in this section are decoded from Branches, Exception Generating and System instructions.

313029282726252423222120191817161514131211109876543210
sf1110100ccRm00imm9Rt
Decode fields Instruction Details Feature
sfcc
10xUNALLOCATED-
0000CB<cc> (register)32-bit greater thanFEAT_CMPBR
0001CB<cc> (register)32-bit greater than or equalFEAT_CMPBR
0010CB<cc> (register)32-bit higherFEAT_CMPBR
0011CB<cc> (register)32-bit higher or sameFEAT_CMPBR
0110CB<cc> (register)32-bit equalFEAT_CMPBR
0111CB<cc> (register)32-bit not equalFEAT_CMPBR
1000CB<cc> (register)64-bit greater thanFEAT_CMPBR
1001CB<cc> (register)64-bit greater than or equalFEAT_CMPBR
1010CB<cc> (register)64-bit higherFEAT_CMPBR
1011CB<cc> (register)64-bit higher or sameFEAT_CMPBR
1110CB<cc> (register)64-bit equalFEAT_CMPBR
1111CB<cc> (register)64-bit not equalFEAT_CMPBR

Compare register with immediate and branch

The encodings in this section are decoded from Branches, Exception Generating and System instructions.

313029282726252423222120191817161514131211109876543210
sf1110101ccimm60imm9Rt
Decode fields Instruction Details Feature
sfcc
10xUNALLOCATED-
0000CB<cc> (immediate)32-bit greater thanFEAT_CMPBR
0001CB<cc> (immediate)32-bit less thanFEAT_CMPBR
0010CB<cc> (immediate)32-bit higherFEAT_CMPBR
0011CB<cc> (immediate)32-bit lowerFEAT_CMPBR
0110CB<cc> (immediate)32-bit equalFEAT_CMPBR
0111CB<cc> (immediate)32-bit not equalFEAT_CMPBR
1000CB<cc> (immediate)64-bit greater thanFEAT_CMPBR
1001CB<cc> (immediate)64-bit less thanFEAT_CMPBR
1010CB<cc> (immediate)64-bit higherFEAT_CMPBR
1011CB<cc> (immediate)64-bit lowerFEAT_CMPBR
1110CB<cc> (immediate)64-bit equalFEAT_CMPBR
1111CB<cc> (immediate)64-bit not equalFEAT_CMPBR

Data Processing -- Register

The encodings in this section are decoded from A64 instruction set encoding.

313029282726252423222120191817161514131211109876543210
op0op1101op2op3
Decode fields Instruction details
op0op1op2op3
0 1 0110 Data-processing (2 source)
1 1 0110 Data-processing (1 source)
0 0xxx Logical (shifted register)
0 1xx0 Add/subtract (shifted register)
0 1xx1 Add/subtract (extended register)
1 0000 000000 Add/subtract (with carry)
1 0000 001xxx Add/subtract (checked pointer)
1 0000 011xxx UNALLOCATED
1 0000 100000 UNALLOCATED
1 0000 1x1xxx UNALLOCATED
1 0000 x00001 Rotate right into flags
1 0000 x0010x UNALLOCATED
1 0000 x10x0x UNALLOCATED
1 0000 xx0010 Evaluate into flags
1 0000 xx0011 UNALLOCATED
1 0000 xx011x UNALLOCATED
1 0010 xxxx0x Conditional compare (register)
1 0010 xxxx1x Conditional compare (immediate)
1 0100 Conditional select
1 0xx1 UNALLOCATED
1 1xxx Data-processing (3 source)

Data-processing (2 source)

The encodings in this section are decoded from Data Processing -- Register.

313029282726252423222120191817161514131211109876543210
sf0S11010110RmopcodeRnRd
Decode fields Instruction Details Feature
sfSopcode
1xxxxxUNALLOCATED-
000011xUNALLOCATED-
100001xUNALLOCATED-
10001xxUNALLOCATED-
1001xxxUNALLOCATED-
101xxxxUNALLOCATED-
000000xUNALLOCATED-
000x11xxUNALLOCATED-
00000010UDIV32-bit-
00000011SDIV32-bit-
0000010xUNALLOCATED-
00001000LSLV32-bit-
00001001LSRV32-bit-
00001010ASRV32-bit-
00001011RORV32-bit-
00010x11UNALLOCATED-
00010000CRC32B, CRC32H, CRC32W, CRC32XCRC32BFEAT_CRC32
00010001CRC32B, CRC32H, CRC32W, CRC32XCRC32HFEAT_CRC32
00010010CRC32B, CRC32H, CRC32W, CRC32XCRC32WFEAT_CRC32
00010100CRC32CB, CRC32CH, CRC32CW, CRC32CXCRC32CBFEAT_CRC32
00010101CRC32CB, CRC32CH, CRC32CW, CRC32CXCRC32CHFEAT_CRC32
00010110CRC32CB, CRC32CH, CRC32CW, CRC32CXCRC32CWFEAT_CRC32
00011000SMAX (register)32-bitFEAT_CSSC
00011001UMAX (register)32-bitFEAT_CSSC
00011010SMIN (register)32-bitFEAT_CSSC
00011011UMIN (register)32-bitFEAT_CSSC
1000001UNALLOCATED-
10000000SUBPFEAT_MTE
10000010UDIV64-bit-
10000011SDIV64-bit-
10000100IRGFEAT_MTE
10000101GMIFEAT_MTE
10001000LSLV64-bit-
10001001LSRV64-bit-
10001010ASRV64-bit-
10001011RORV64-bit-
10001100PACGAFEAT_PAuth
10001101UNALLOCATED-
1000111xUNALLOCATED-
10010xx0UNALLOCATED-
10010001UNALLOCATED-
10010011CRC32B, CRC32H, CRC32W, CRC32XCRC32XFEAT_CRC32
10010101UNALLOCATED-
10010111CRC32CB, CRC32CH, CRC32CW, CRC32CXCRC32CXFEAT_CRC32
10011000SMAX (register)64-bitFEAT_CSSC
10011001UMAX (register)64-bitFEAT_CSSC
10011010SMIN (register)64-bitFEAT_CSSC
10011011UMIN (register)64-bitFEAT_CSSC
100111xxUNALLOCATED-
11000000SUBPSFEAT_MTE

Data-processing (1 source)

The encodings in this section are decoded from Data Processing -- Register.

313029282726252423222120191817161514131211109876543210
sf1S11010110opcode2opcodeRnRd
Decode fields Instruction Details Feature
sfSopcode2opcodeRnRd
000000001001UNALLOCATED-
00000000101xUNALLOCATED-
0000000011xxUNALLOCATED-
00000001xxxxUNALLOCATED-
0000001xxxxxUNALLOCATED-
0001xxUNALLOCATED-
001xxxUNALLOCATED-
01xxxxUNALLOCATED-
0!= 0000x0001xUNALLOCATED-
1UNALLOCATED-
0000000000000RBIT32-bit-
0000000000001REV1632-bit-
0000000000010REV32-bit-
0000000000011UNALLOCATED-
0000000000100CLZ32-bit-
0000000000101CLS32-bit-
0000000000110CTZ32-bitFEAT_CSSC
0000000000111CNT32-bitFEAT_CSSC
0000000001000ABS32-bitFEAT_CSSC
0000001UNALLOCATED-
1000000000000RBIT64-bit-
1000000000001REV1664-bit-
1000000000010REV32-
1000000000011REV64-bit-
1000000000100CLZ64-bit-
1000000000101CLS64-bit-
1000000000110CTZ64-bitFEAT_CSSC
1000000000111CNT64-bitFEAT_CSSC
1000000001000ABS64-bitFEAT_CSSC
1000001000000PACIA, PACIA1716, PACIASP, PACIAZ, PACIZAPACIAFEAT_PAuth
1000001000001PACIB, PACIB1716, PACIBSP, PACIBZ, PACIZBPACIBFEAT_PAuth
1000001000010PACDA, PACDZAPACDAFEAT_PAuth
1000001000011PACDB, PACDZBPACDBFEAT_PAuth
1000001000100AUTIA, AUTIA1716, AUTIASP, AUTIAZ, AUTIZAAUTIAFEAT_PAuth
1000001000101AUTIB, AUTIB1716, AUTIBSP, AUTIBZ, AUTIZBAUTIBFEAT_PAuth
1000001000110AUTDA, AUTDZAAUTDAFEAT_PAuth
1000001000111AUTDB, AUTDZBAUTDBFEAT_PAuth
1000001001xxx!= 11111UNALLOCATED-
100000100100011111PACIA, PACIA1716, PACIASP, PACIAZ, PACIZAPACIZAFEAT_PAuth
100000100100111111PACIB, PACIB1716, PACIBSP, PACIBZ, PACIZBPACIZBFEAT_PAuth
100000100101011111PACDA, PACDZAPACDZAFEAT_PAuth
100000100101111111PACDB, PACDZBPACDZBFEAT_PAuth
100000100110011111AUTIA, AUTIA1716, AUTIASP, AUTIAZ, AUTIZAAUTIZAFEAT_PAuth
100000100110111111AUTIB, AUTIB1716, AUTIBSP, AUTIBZ, AUTIZBAUTIZBFEAT_PAuth
100000100111011111AUTDA, AUTDZAAUTDZAFEAT_PAuth
100000100111111111AUTDB, AUTDZBAUTDZBFEAT_PAuth
100000101000x!= 11111UNALLOCATED-
100000101000011111XPACD, XPACI, XPACLRIXPACIFEAT_PAuth
100000101000111111XPACD, XPACI, XPACLRIXPACDFEAT_PAuth
100000101001xUNALLOCATED-
10000010101xxUNALLOCATED-
1000001011xxxUNALLOCATED-
100000110xxxx!= 11110UNALLOCATED-
10000011000xx!= 1111111110UNALLOCATED-
10000011000001111111110PACNBIASPPCFEAT_PAuth_LR
10000011000011111111110PACNBIBSPPCFEAT_PAuth_LR
10000011000101111111110PACIA171615FEAT_PAuth_LR
10000011000111111111110PACIB171615FEAT_PAuth_LR
100000110010011110AUTIASPPCRFEAT_PAuth_LR
100000110010111110AUTIBSPPCRFEAT_PAuth_LR
100000110011x11110UNALLOCATED-
1000001101xxx!= 1111111110UNALLOCATED-
10000011010001111111110PACIASPPCFEAT_PAuth_LR
10000011010011111111110PACIBSPPCFEAT_PAuth_LR
100000110101x1111111110UNALLOCATED-
100000110110x1111111110UNALLOCATED-
10000011011101111111110AUTIA171615FEAT_PAuth_LR
10000011011111111111110AUTIB171615FEAT_PAuth_LR
100000111xxxxUNALLOCATED-

Logical (shifted register)

The encodings in this section are decoded from Data Processing -- Register.

313029282726252423222120191817161514131211109876543210
sfopc01010shiftNRmimm6RnRd
Decode fields Instruction Details
sfopcN
0000AND (shifted register)32-bit
0001BIC (shifted register)32-bit
0010ORR (shifted register)32-bit
0011ORN (shifted register)32-bit
0100EOR (shifted register)32-bit
0101EON (shifted register)32-bit
0110ANDS (shifted register)32-bit
0111BICS (shifted register)32-bit
1000AND (shifted register)64-bit
1001BIC (shifted register)64-bit
1010ORR (shifted register)64-bit
1011ORN (shifted register)64-bit
1100EOR (shifted register)64-bit
1101EON (shifted register)64-bit
1110ANDS (shifted register)64-bit
1111BICS (shifted register)64-bit

Add/subtract (shifted register)

The encodings in this section are decoded from Data Processing -- Register.

313029282726252423222120191817161514131211109876543210
sfopS01011shift0Rmimm6RnRd
Decode fields Instruction Details
sfopS
000ADD (shifted register)32-bit
001ADDS (shifted register)32-bit
010SUB (shifted register)32-bit
011SUBS (shifted register)32-bit
100ADD (shifted register)64-bit
101ADDS (shifted register)64-bit
110SUB (shifted register)64-bit
111SUBS (shifted register)64-bit

Add/subtract (extended register)

The encodings in this section are decoded from Data Processing -- Register.

313029282726252423222120191817161514131211109876543210
sfopS01011opt1Rmoptionimm3RnRd
Decode fields Instruction Details
sfopSopt
!= 00UNALLOCATED
00000ADD (extended register)32-bit
00100ADDS (extended register)32-bit
01000SUB (extended register)32-bit
01100SUBS (extended register)32-bit
10000ADD (extended register)64-bit
10100ADDS (extended register)64-bit
11000SUB (extended register)64-bit
11100SUBS (extended register)64-bit

Add/subtract (with carry)

The encodings in this section are decoded from Data Processing -- Register.

313029282726252423222120191817161514131211109876543210
sfopS11010000Rm000000RnRd
Decode fields Instruction Details
sfopS
000ADC32-bit
001ADCS32-bit
010SBC32-bit
011SBCS32-bit
100ADC64-bit
101ADCS64-bit
110SBC64-bit
111SBCS64-bit

Add/subtract (checked pointer)

The encodings in this section are decoded from Data Processing -- Register.

313029282726252423222120191817161514131211109876543210
sfopS11010000Rm001imm3RnRd
Decode fields Instruction Details Feature
sfopS
0UNALLOCATED-
11UNALLOCATED-
100ADDPTFEAT_CPA
110SUBPTFEAT_CPA

Rotate right into flags

The encodings in this section are decoded from Data Processing -- Register.

313029282726252423222120191817161514131211109876543210
sfopS11010000imm600001Rno2mask
Decode fields Instruction Details Feature
sfopSo2
0UNALLOCATED-
100UNALLOCATED-
1010RMIFFEAT_FlagM
1011UNALLOCATED-
11UNALLOCATED-

Evaluate into flags

The encodings in this section are decoded from Data Processing -- Register.

313029282726252423222120191817161514131211109876543210
sfopS11010000opcode2sz0010Rno3mask
Decode fields Instruction Details Feature
sfopSopcode2szo3mask
000UNALLOCATED-
0010000000!= 1101UNALLOCATED-
0010000001UNALLOCATED-
001000000001101SETF8, SETF16SETF8FEAT_FlagM
001000000101101SETF8, SETF16SETF16FEAT_FlagM
001!= 000000UNALLOCATED-
01UNALLOCATED-
1UNALLOCATED-

Conditional compare (register)

The encodings in this section are decoded from Data Processing -- Register.

313029282726252423222120191817161514131211109876543210
sfopS11010010Rmcond0o2Rno3nzcv
Decode fields Instruction Details
sfopSo2o3
0UNALLOCATED
101UNALLOCATED
11UNALLOCATED
00100CCMN (register)32-bit
01100CCMP (register)32-bit
10100CCMN (register)64-bit
11100CCMP (register)64-bit

Conditional compare (immediate)

The encodings in this section are decoded from Data Processing -- Register.

313029282726252423222120191817161514131211109876543210
sfopS11010010imm5cond1o2Rno3nzcv
Decode fields Instruction Details
sfopSo2o3
0UNALLOCATED
101UNALLOCATED
11UNALLOCATED
00100CCMN (immediate)32-bit
01100CCMP (immediate)32-bit
10100CCMN (immediate)64-bit
11100CCMP (immediate)64-bit

Conditional select

The encodings in this section are decoded from Data Processing -- Register.

313029282726252423222120191817161514131211109876543210
sfopS11010100Rmcondop2RnRd
Decode fields Instruction Details
sfopSop2
01xUNALLOCATED
1UNALLOCATED
00000CSEL32-bit
00001CSINC32-bit
01000CSINV32-bit
01001CSNEG32-bit
10000CSEL64-bit
10001CSINC64-bit
11000CSINV64-bit
11001CSNEG64-bit

Data-processing (3 source)

The encodings in this section are decoded from Data Processing -- Register.

313029282726252423222120191817161514131211109876543210
sfop5411011op31Rmo0RaRnRd
Decode fields Instruction Details Feature
sfop54op31o0
00100UNALLOCATED-
!= 00UNALLOCATED-
000x1xUNALLOCATED-
000!= x00x01UNALLOCATED-
0000000MADD32-bit-
0000001MSUB32-bit-
100x101UNALLOCATED-
1000000MADD64-bit-
1000001MSUB64-bit-
1000010SMADDL-
1000011SMSUBL-
1000100SMULH-
1000110MADDPTFEAT_CPA
1000111MSUBPTFEAT_CPA
1001010UMADDL-
1001011UMSUBL-
1001100UMULH-
100111UNALLOCATED-

Data Processing -- Scalar Floating-Point and Advanced SIMD

The encodings in this section are decoded from A64 instruction set encoding.

313029282726252423222120191817161514131211109876543210
op0111op1op2op3
Decode fields Instruction details Feature
op0op1op2op3
00x0 0x x101 00xxxxx10 UNALLOCATED-
00x0 11 xxxxxxxx1 UNALLOCATED-
0100 0x x101 00xxxxx10 Cryptographic AES-
0101 0x x0xx xxx0xxx00 Cryptographic three-register SHA-
0101 0x x0xx xxx0xxx10 UNALLOCATED-
0101 0x x0xx xxx1xxxx0 UNALLOCATED-
0101 0x x101 00xxxxx10 Cryptographic two-register SHA-
0111 0x x0xx xxxxxxxx0 UNALLOCATED-
011x 0x x101 00xxxxx10 UNALLOCATED-
01x1 00 00xx xxx0xxxx1 Advanced SIMD scalar copy-
01x1 01 00xx xxx0xxxx1 UNALLOCATED-
01x1 0x 0111 00xxxxx10 UNALLOCATED-
01x1 0x 10xx xxx00xxx1 Advanced SIMD scalar three same FP16-
01x1 0x 10xx xxx01xxx1 UNALLOCATED-
01x1 0x 1111 00xxxxx10 Advanced SIMD scalar two-register miscellaneous FP16-
01x1 0x x0xx xxx1xxxx1 Advanced SIMD scalar three same extra-
01x1 0x x100 00xxxxx10 Advanced SIMD scalar two-register miscellaneous-
01x1 0x x110 00xxxxx10 Advanced SIMD scalar pairwise-
01x1 0x x1xx 01xxxxx10 UNALLOCATED-
01x1 0x x1xx 1xxxxxx10 UNALLOCATED-
01x1 0x x1xx xxxxxxx00 Advanced SIMD scalar three different-
01x1 0x x1xx xxxxxxxx1 Advanced SIMD scalar three same-
01x1 10 xxxxxxxx1 Advanced SIMD scalar shift by immediate-
01x1 1x xxxxxxxx0 Advanced SIMD scalar x indexed element-
01xx 11 xxxxxxxx1 UNALLOCATED-
0x00 0x x0xx xxx0xxx00 Advanced SIMD table lookup-
0x00 0x x0xx xxx0xxx10 Advanced SIMD permute-
0x10 0x x0xx xxx0xxxx0 Advanced SIMD extract-
0xx0 00 00xx xxx0xxxx1 Advanced SIMD copy-
0xx0 01 00xx xxx0xxxx1 UNALLOCATED-
0xx0 0x 0111 00xxxxx10 UNALLOCATED-
0xx0 0x 10xx xxx00xxx1 Advanced SIMD three same (FP16)-
0xx0 0x 10xx xxx01xxx1 UNALLOCATED-
0xx0 0x 1111 00xxxxx10 Advanced SIMD two-register miscellaneous (FP16)-
0xx0 0x x0xx xxx1xxxx0 UNALLOCATED-
0xx0 0x x0xx xxx1xxxx1 Advanced SIMD three-register extension-
0xx0 0x x100 00xxxxx10 Advanced SIMD two-register miscellaneous-
0xx0 0x x110 00xxxxx10 Advanced SIMD across lanes-
0xx0 0x x1xx 01xxxxx10 UNALLOCATED-
0xx0 0x x1xx 1xxxxxx10 UNALLOCATED-
0xx0 0x x1xx xxxxxxx00 Advanced SIMD three different-
0xx0 0x x1xx xxxxxxxx1 Advanced SIMD three same-
0xx0 10 0000 xxxxxxxx1 Advanced SIMD modified immediate-
0xx0 10 != 0000 xxxxxxxx1 Advanced SIMD shift by immediate-
0xx0 1x xxxxxxxx0 Advanced SIMD vector x indexed element-
10x0 UNALLOCATED-
1100 00 0xxx xxx1xxxxx UNALLOCATED-
1100 00 10xx xxx10xxxx Cryptographic three-register, imm2-
1100 00 10xx xxx11xxxx UNALLOCATED-
1100 00 11xx xxx1x00xx Cryptographic three-register SHA 512-
1100 00 11xx xxx1x01xx UNALLOCATED-
1100 00 11xx xxx1x1xxx UNALLOCATED-
1100 00 xxx0xxxxx Cryptographic four-register-
1100 01 00xx XARFEAT_SHA3
1100 01 1000 0000xxxxx UNALLOCATED-
1100 01 1000 0001000xx Cryptographic two-register SHA 512-
1100 01 1000 0001x01xx UNALLOCATED-
1100 01 1000 0001x1xxx UNALLOCATED-
1100 01 1000 001xxxxxx UNALLOCATED-
1100 01 1000 01xxxxxxx UNALLOCATED-
1100 01 1000 1xxxxxxxx UNALLOCATED-
1100 01 1000 != 0001000xx0001100xxUNALLOCATED-
1100 01 1001 UNALLOCATED-
1100 01 101x UNALLOCATED-
1100 01 x1xx UNALLOCATED-
1100 1x UNALLOCATED-
1110 UNALLOCATED-
11x1 UNALLOCATED-
x0x1 0x x0xx Conversion between floating-point and fixed-point-
x0x1 0x x1xx xxx000000 Conversion between floating-point and integer-
x0x1 0x x1xx xxx100000 UNALLOCATED-
x0x1 0x x1xx xxxx10000 Floating-point data-processing (1 source)-
x0x1 0x x1xx xxxxx1000 Floating-point compare-
x0x1 0x x1xx xxxxxx100 Floating-point immediate-
x0x1 0x x1xx xxxxxxx01 Floating-point conditional compare-
x0x1 0x x1xx xxxxxxx10 Floating-point data-processing (2 source)-
x0x1 0x x1xx xxxxxxx11 Floating-point conditional select-
x0x1 1x Floating-point data-processing (3 source)-

Cryptographic AES

The encodings in this section are decoded from Data Processing -- Scalar Floating-Point and Advanced SIMD.

313029282726252423222120191817161514131211109876543210
01001110size10100opcode10RnRd
Decode fields Instruction Details Feature
sizeopcode
00000xxUNALLOCATED-
0000100AESEFEAT_AES
0000101AESDFEAT_AES
0000110AESMCFEAT_AES
0000111AESIMCFEAT_AES
001xxxxUNALLOCATED-
00!= 001xx01xxxUNALLOCATED-
!= 00UNALLOCATED-

Cryptographic three-register SHA

The encodings in this section are decoded from Data Processing -- Scalar Floating-Point and Advanced SIMD.

313029282726252423222120191817161514131211109876543210
01011110size0Rm0opcode00RnRd
Decode fields Instruction Details Feature
sizeopcode
00000SHA1CFEAT_SHA1
00001SHA1PFEAT_SHA1
00010SHA1MFEAT_SHA1
00011SHA1SU0FEAT_SHA1
00100SHA256HFEAT_SHA256
00101SHA256H2FEAT_SHA256
00110SHA256SU1FEAT_SHA256
00111UNALLOCATED-
!= 00UNALLOCATED-

Cryptographic two-register SHA

The encodings in this section are decoded from Data Processing -- Scalar Floating-Point and Advanced SIMD.

313029282726252423222120191817161514131211109876543210
01011110size10100opcode10RnRd
Decode fields Instruction Details Feature
sizeopcode
0000000SHA1HFEAT_SHA1
0000001SHA1SU1FEAT_SHA1
0000010SHA256SU0FEAT_SHA256
0000011UNALLOCATED-
00001xxUNALLOCATED-
0001xxxUNALLOCATED-
001xxxxUNALLOCATED-
!= 00UNALLOCATED-

Advanced SIMD scalar copy

The encodings in this section are decoded from Data Processing -- Scalar Floating-Point and Advanced SIMD.

313029282726252423222120191817161514131211109876543210
01op11110000imm50imm41RnRd
Decode fields Instruction Details Feature
opimm4
00000DUP (element)FEAT_AdvSIMD
0!= 0000UNALLOCATED-
1UNALLOCATED-

Advanced SIMD scalar three same FP16

The encodings in this section are decoded from Data Processing -- Scalar Floating-Point and Advanced SIMD.

313029282726252423222120191817161514131211109876543210
01U11110a10Rm00opcode1RnRd
Decode fields Instruction Details Feature
Uaopcode
00xUNALLOCATED-
0010UNALLOCATED-
0101UNALLOCATED-
00011FMULXFEAT_AdvSIMD && FEAT_FP16
00100FCMEQ (register)FEAT_AdvSIMD && FEAT_FP16
00110UNALLOCATED-
00111FRECPSFEAT_AdvSIMD && FEAT_FP16
01x10UNALLOCATED-
01011UNALLOCATED-
01100UNALLOCATED-
01111FRSQRTSFEAT_AdvSIMD && FEAT_FP16
1011UNALLOCATED-
111xUNALLOCATED-
10100FCMGE (register)FEAT_AdvSIMD && FEAT_FP16
10101FACGEFEAT_AdvSIMD && FEAT_FP16
11010FABDFEAT_AdvSIMD && FEAT_FP16
11100FCMGT (register)FEAT_AdvSIMD && FEAT_FP16
11101FACGTFEAT_AdvSIMD && FEAT_FP16

Advanced SIMD scalar two-register miscellaneous FP16

The encodings in this section are decoded from Data Processing -- Scalar Floating-Point and Advanced SIMD.

313029282726252423222120191817161514131211109876543210
01U11110a111100opcode10RnRd
Decode fields Instruction Details Feature
Uaopcode
x0xxxUNALLOCATED-
1100xUNALLOCATED-
001xxxUNALLOCATED-
1010xxUNALLOCATED-
111100UNALLOCATED-
0011010FCVTNS (vector)FEAT_AdvSIMD && FEAT_FP16
0011011FCVTMS (vector)FEAT_AdvSIMD && FEAT_FP16
0011100FCVTAS (vector)FEAT_AdvSIMD && FEAT_FP16
0011101SCVTF (vector, integer)FEAT_AdvSIMD && FEAT_FP16
001111xUNALLOCATED-
0101100FCMGT (zero)FEAT_AdvSIMD && FEAT_FP16
0101101FCMEQ (zero)FEAT_AdvSIMD && FEAT_FP16
0101110FCMLT (zero)FEAT_AdvSIMD && FEAT_FP16
0101111UNALLOCATED-
0111010FCVTPS (vector)FEAT_AdvSIMD && FEAT_FP16
0111011FCVTZS (vector, integer)FEAT_AdvSIMD && FEAT_FP16
0111101FRECPEFEAT_AdvSIMD && FEAT_FP16
0111110UNALLOCATED-
0111111FRECPXFEAT_AdvSIMD && FEAT_FP16
11111xUNALLOCATED-
1011010FCVTNU (vector)FEAT_AdvSIMD && FEAT_FP16
1011011FCVTMU (vector)FEAT_AdvSIMD && FEAT_FP16
1011100FCVTAU (vector)FEAT_AdvSIMD && FEAT_FP16
1011101UCVTF (vector, integer)FEAT_AdvSIMD && FEAT_FP16
1101100FCMGE (zero)FEAT_AdvSIMD && FEAT_FP16
1101101FCMLE (zero)FEAT_AdvSIMD && FEAT_FP16
110111xUNALLOCATED-
1111010FCVTPU (vector)FEAT_AdvSIMD && FEAT_FP16
1111011FCVTZU (vector, integer)FEAT_AdvSIMD && FEAT_FP16
1111101FRSQRTEFEAT_AdvSIMD && FEAT_FP16

Advanced SIMD scalar three same extra

The encodings in this section are decoded from Data Processing -- Scalar Floating-Point and Advanced SIMD.

313029282726252423222120191817161514131211109876543210
01U11110size0Rm1opcode1RnRd
Decode fields Instruction Details Feature
Uopcode
0UNALLOCATED-
10000SQRDMLAH (vector)FEAT_RDM
10001SQRDMLSH (vector)FEAT_RDM
101xxUNALLOCATED-
11xxxUNALLOCATED-
1!= 000x001xUNALLOCATED-

Advanced SIMD scalar two-register miscellaneous

The encodings in this section are decoded from Data Processing -- Scalar Floating-Point and Advanced SIMD.

313029282726252423222120191817161514131211109876543210
01U11110size10000opcode10RnRd
Decode fields Instruction Details Feature
Usizeopcode
00xx0UNALLOCATED-
00x01UNALLOCATED-
1x000UNALLOCATED-
10xx1UNALLOCATED-
11001UNALLOCATED-
0x01xxxUNALLOCATED-
0x1111xUNALLOCATED-
1x01111UNALLOCATED-
1x11100UNALLOCATED-
10010x1UNALLOCATED-
1001000UNALLOCATED-
000011SUQADDFEAT_AdvSIMD
000111SQABSFEAT_AdvSIMD
010010UNALLOCATED-
010100SQXTN, SQXTN2FEAT_AdvSIMD
010110UNALLOCATED-
00x11010FCVTNS (vector)FEAT_AdvSIMD
00x11011FCVTMS (vector)FEAT_AdvSIMD
00x11100FCVTAS (vector)FEAT_AdvSIMD
00x11101SCVTF (vector, integer)FEAT_AdvSIMD
01x01100FCMGT (zero)FEAT_AdvSIMD
01x01101FCMEQ (zero)FEAT_AdvSIMD
01x01110FCMLT (zero)FEAT_AdvSIMD
01x11010FCVTPS (vector)FEAT_AdvSIMD
01x11011FCVTZS (vector, integer)FEAT_AdvSIMD
01x11101FRECPEFEAT_AdvSIMD
01x11110UNALLOCATED-
01x11111FRECPXFEAT_AdvSIMD
01001010UNALLOCATED-
01101000CMGT (zero)FEAT_AdvSIMD
01101001CMEQ (zero)FEAT_AdvSIMD
01101010CMLT (zero)FEAT_AdvSIMD
01101011ABSFEAT_AdvSIMD
100011USQADDFEAT_AdvSIMD
100111SQNEGFEAT_AdvSIMD
110010SQXTUN, SQXTUN2FEAT_AdvSIMD
110100UQXTN, UQXTN2FEAT_AdvSIMD
10x11010FCVTNU (vector)FEAT_AdvSIMD
10x11011FCVTMU (vector)FEAT_AdvSIMD
10x11100FCVTAU (vector)FEAT_AdvSIMD
10x11101UCVTF (vector, integer)FEAT_AdvSIMD
10010110UNALLOCATED-
10110110FCVTXN, FCVTXN2FEAT_AdvSIMD
11x01x10UNALLOCATED-
11x01100FCMGE (zero)FEAT_AdvSIMD
11x01101FCMLE (zero)FEAT_AdvSIMD
11x1x110UNALLOCATED-
11x11010FCVTPU (vector)FEAT_AdvSIMD
11x11011FCVTZU (vector, integer)FEAT_AdvSIMD
11x11101FRSQRTEFEAT_AdvSIMD
11x11111UNALLOCATED-
11101000CMGE (zero)FEAT_AdvSIMD
11101001CMLE (zero)FEAT_AdvSIMD
11101011NEG (vector)FEAT_AdvSIMD

Advanced SIMD scalar pairwise

The encodings in this section are decoded from Data Processing -- Scalar Floating-Point and Advanced SIMD.

313029282726252423222120191817161514131211109876543210
01U11110size11000opcode10RnRd
Decode fields Instruction Details Feature
Usizeopcode
x0xxxUNALLOCATED-
01110UNALLOCATED-
111xxUNALLOCATED-
1001101UNALLOCATED-
0x1011x1UNALLOCATED-
0x101100UNALLOCATED-
00001100FMAXNMP (scalar)Half-precisionFEAT_AdvSIMD && FEAT_FP16
00001101FADDP (scalar)Half-precisionFEAT_AdvSIMD && FEAT_FP16
00001111FMAXP (scalar)Half-precisionFEAT_AdvSIMD && FEAT_FP16
01001100FMINNMP (scalar)Half-precisionFEAT_AdvSIMD && FEAT_FP16
01001111FMINP (scalar)Half-precisionFEAT_AdvSIMD && FEAT_FP16
011x100xUNALLOCATED-
011x1010UNALLOCATED-
01101011UNALLOCATED-
01111011ADDP (scalar)FEAT_AdvSIMD
0!= 11x10xxUNALLOCATED-
1x10xxUNALLOCATED-
10x01100FMAXNMP (scalar)Single-precision and double-precisionFEAT_AdvSIMD
10x01101FADDP (scalar)Single-precision and double-precisionFEAT_AdvSIMD
10x01111FMAXP (scalar)Single-precision and double-precisionFEAT_AdvSIMD
11x01100FMINNMP (scalar)Single-precision and double-precisionFEAT_AdvSIMD
11x01111FMINP (scalar)Single-precision and double-precisionFEAT_AdvSIMD
11101101UNALLOCATED-

Advanced SIMD scalar three different

The encodings in this section are decoded from Data Processing -- Scalar Floating-Point and Advanced SIMD.

313029282726252423222120191817161514131211109876543210
01U11110size1Rmopcode00RnRd
Decode fields Instruction Details Feature
Uopcode
00xxxUNALLOCATED-
01xx0UNALLOCATED-
01001SQDMLAL, SQDMLAL2 (vector)FEAT_AdvSIMD
01011SQDMLSL, SQDMLSL2 (vector)FEAT_AdvSIMD
01101SQDMULL, SQDMULL2 (vector)FEAT_AdvSIMD
01111UNALLOCATED-
1UNALLOCATED-

Advanced SIMD scalar three same

The encodings in this section are decoded from Data Processing -- Scalar Floating-Point and Advanced SIMD.

313029282726252423222120191817161514131211109876543210
01U11110size1Rmopcode1RnRd
Decode fields Instruction Details Feature
Usizeopcode
x0011UNALLOCATED-
011x1UNALLOCATED-
11001UNALLOCATED-
11110UNALLOCATED-
x00x1x0UNALLOCATED-
x100100UNALLOCATED-
x1011x0UNALLOCATED-
0xxx0x0UNALLOCATED-
0x10x01UNALLOCATED-
0100110UNALLOCATED-
1x10010UNALLOCATED-
1x11000UNALLOCATED-
100x0x0UNALLOCATED-
1010x0xUNALLOCATED-
1100000UNALLOCATED-
1100010UNALLOCATED-
1110101UNALLOCATED-
!= 1010100UNALLOCATED-
!= 1100111UNALLOCATED-
000001SQADDFEAT_AdvSIMD
000101SQSUBFEAT_AdvSIMD
001001SQSHL (register)FEAT_AdvSIMD
001011SQRSHLFEAT_AdvSIMD
010110SQDMULH (vector)FEAT_AdvSIMD
010111UNALLOCATED-
011101UNALLOCATED-
00x11011FMULXFEAT_AdvSIMD
00x11100FCMEQ (register)FEAT_AdvSIMD
00x11111FRECPSFEAT_AdvSIMD
01x11010UNALLOCATED-
01x11011UNALLOCATED-
01x11100UNALLOCATED-
01x11111FRSQRTSFEAT_AdvSIMD
01100110CMGT (register)FEAT_AdvSIMD
01100111CMGE (register)FEAT_AdvSIMD
01101000SSHLFEAT_AdvSIMD
01101010SRSHLFEAT_AdvSIMD
01110000ADD (vector)FEAT_AdvSIMD
01110001CMTSTFEAT_AdvSIMD
100001UQADDFEAT_AdvSIMD
100101UQSUBFEAT_AdvSIMD
101001UQSHL (register)FEAT_AdvSIMD
101011UQRSHLFEAT_AdvSIMD
11x111UNALLOCATED-
110110SQRDMULH (vector)FEAT_AdvSIMD
111011UNALLOCATED-
10x11100FCMGE (register)FEAT_AdvSIMD
10x11101FACGEFEAT_AdvSIMD
11x11010FABDFEAT_AdvSIMD
11x11100FCMGT (register)FEAT_AdvSIMD
11x11101FACGTFEAT_AdvSIMD
11100110CMHI (register)FEAT_AdvSIMD
11100111CMHS (register)FEAT_AdvSIMD
11101000USHLFEAT_AdvSIMD
11101010URSHLFEAT_AdvSIMD
11110000SUB (vector)FEAT_AdvSIMD
11110001CMEQ (register)FEAT_AdvSIMD

Advanced SIMD scalar shift by immediate

The encodings in this section are decoded from Data Processing -- Scalar Floating-Point and Advanced SIMD.

313029282726252423222120191817161514131211109876543210
01U111110immhimmbopcode1RnRd
Decode fields Instruction Details Feature
Uimmhopcode
0xxx1UNALLOCATED-
101xxUNALLOCATED-
11101UNALLOCATED-
0xxxx10x0UNALLOCATED-
0xxx00xx0UNALLOCATED-
0xxx110x1UNALLOCATED-
0000x1110UNALLOCATED-
00001001xUNALLOCATED-
000011100UNALLOCATED-
000011111UNALLOCATED-
1xxx110xxUNALLOCATED-
!= 000011110UNALLOCATED-
001100UNALLOCATED-
01000xUNALLOCATED-
01xxx00000SSHRFEAT_AdvSIMD
01xxx00010SSRAFEAT_AdvSIMD
01xxx00100SRSHRFEAT_AdvSIMD
01xxx00110SRSRAFEAT_AdvSIMD
01xxx01000UNALLOCATED-
01xxx01010SHLFEAT_AdvSIMD
0!= 000001110SQSHL (immediate)FEAT_AdvSIMD
0!= 000010010SQSHRN, SQSHRN2FEAT_AdvSIMD
0!= 000010011SQRSHRN, SQRSHRN2FEAT_AdvSIMD
0!= 000011100SCVTF (vector, fixed-point)FEAT_AdvSIMD
0!= 000011111FCVTZS (vector, fixed-point)FEAT_AdvSIMD
1000001100UNALLOCATED-
100001000xUNALLOCATED-
11xxx00000USHRFEAT_AdvSIMD
11xxx00010USRAFEAT_AdvSIMD
11xxx00100URSHRFEAT_AdvSIMD
11xxx00110URSRAFEAT_AdvSIMD
11xxx01000SRIFEAT_AdvSIMD
11xxx01010SLIFEAT_AdvSIMD
1!= 000001100SQSHLUFEAT_AdvSIMD
1!= 000001110UQSHL (immediate)FEAT_AdvSIMD
1!= 000010000SQSHRUN, SQSHRUN2FEAT_AdvSIMD
1!= 000010001SQRSHRUN, SQRSHRUN2FEAT_AdvSIMD
1!= 000010010UQSHRN, UQSHRN2FEAT_AdvSIMD
1!= 000010011UQRSHRN, UQRSHRN2FEAT_AdvSIMD
1!= 000011100UCVTF (vector, fixed-point)FEAT_AdvSIMD
1!= 000011111FCVTZU (vector, fixed-point)FEAT_AdvSIMD

Advanced SIMD scalar x indexed element

The encodings in this section are decoded from Data Processing -- Scalar Floating-Point and Advanced SIMD.

313029282726252423222120191817161514131211109876543210
01U11111sizeLMRmopcodeH0RnRd
Decode fields Instruction Details Feature
Usizeopcode
011001UNALLOCATED-
00xx0UNALLOCATED-
00011SQDMLAL, SQDMLAL2 (by element)FEAT_AdvSIMD
00111SQDMLSL, SQDMLSL2 (by element)FEAT_AdvSIMD
010x0UNALLOCATED-
01011SQDMULL, SQDMULL2 (by element)FEAT_AdvSIMD
01100SQDMULH (by element)FEAT_AdvSIMD
01101SQRDMULH (by element)FEAT_AdvSIMD
0111xUNALLOCATED-
0000001FMLA (by element)Scalar, half-precisionFEAT_AdvSIMD && FEAT_FP16
0000101FMLS (by element)Scalar, half-precisionFEAT_AdvSIMD && FEAT_FP16
0001001FMUL (by element)Scalar, half-precisionFEAT_AdvSIMD && FEAT_FP16
0010x01UNALLOCATED-
01x0001FMLA (by element)Scalar, single-precision and double-precisionFEAT_AdvSIMD
01x0101FMLS (by element)Scalar, single-precision and double-precisionFEAT_AdvSIMD
01x1001FMUL (by element)Scalar, single-precision and double-precisionFEAT_AdvSIMD
10xxxUNALLOCATED-
11xx0UNALLOCATED-
11011UNALLOCATED-
11101SQRDMLAH (by element)FEAT_RDM
11111SQRDMLSH (by element)FEAT_RDM
1001001FMULX (by element)Scalar, half-precisionFEAT_AdvSIMD && FEAT_FP16
11x1001FMULX (by element)Scalar, single-precision and double-precisionFEAT_AdvSIMD

Advanced SIMD table lookup

The encodings in this section are decoded from Data Processing -- Scalar Floating-Point and Advanced SIMD.

313029282726252423222120191817161514131211109876543210
0Q001110op20Rm0lenop00RnRd
Decode fields Instruction Details Feature
Qop2lenop
00000TBLSingle register tableFEAT_AdvSIMD
00001TBXSingle register tableFEAT_AdvSIMD
00010TBLTwo register tableFEAT_AdvSIMD
00011TBXTwo register tableFEAT_AdvSIMD
00100TBLThree register tableFEAT_AdvSIMD
00101TBXThree register tableFEAT_AdvSIMD
00110TBLFour register tableFEAT_AdvSIMD
00111TBXFour register tableFEAT_AdvSIMD
0!= 00UNALLOCATED-
1011LUTI4HalfwordFEAT_AdvSIMD && FEAT_LUT
101x00UNALLOCATED-
101x10LUTI4ByteFEAT_AdvSIMD && FEAT_LUT
1100UNALLOCATED-
1101LUTI2ByteFEAT_AdvSIMD && FEAT_LUT
111LUTI2HalfwordFEAT_AdvSIMD && FEAT_LUT

Advanced SIMD permute

The encodings in this section are decoded from Data Processing -- Scalar Floating-Point and Advanced SIMD.

313029282726252423222120191817161514131211109876543210
0Q001110size0Rm0opcode10RnRd
Decode fields Instruction Details Feature
opcode
x00UNALLOCATED-
001UZP1FEAT_AdvSIMD
010TRN1FEAT_AdvSIMD
011ZIP1FEAT_AdvSIMD
101UZP2FEAT_AdvSIMD
110TRN2FEAT_AdvSIMD
111ZIP2FEAT_AdvSIMD

Advanced SIMD extract

The encodings in this section are decoded from Data Processing -- Scalar Floating-Point and Advanced SIMD.

313029282726252423222120191817161514131211109876543210
0Q101110op20Rm0imm40RnRd
Decode fields Instruction Details Feature
op2
00EXTFEAT_AdvSIMD
!= 00UNALLOCATED-

Advanced SIMD copy

The encodings in this section are decoded from Data Processing -- Scalar Floating-Point and Advanced SIMD.

313029282726252423222120191817161514131211109876543210
0Qop01110000imm50imm41RnRd
Decode fields Instruction Details Feature
Qopimm5imm4
00000DUP (element)FEAT_AdvSIMD
00001DUP (general)FEAT_AdvSIMD
001x0UNALLOCATED-
01xxxUNALLOCATED-
00001xUNALLOCATED-
000101SMOV32-bitFEAT_AdvSIMD
000111UMOV32-bitFEAT_AdvSIMD
01UNALLOCATED-
100010UNALLOCATED-
100011INS (general)FEAT_AdvSIMD
100101SMOV64-bitFEAT_AdvSIMD
10x0xxx0111UNALLOCATED-
10x10000111UMOV64-bitFEAT_AdvSIMD
10x101x0111UNALLOCATED-
10x11xx0111UNALLOCATED-
10!= x1000x10010111UNALLOCATED-
11INS (element)FEAT_AdvSIMD

Advanced SIMD three same (FP16)

The encodings in this section are decoded from Data Processing -- Scalar Floating-Point and Advanced SIMD.

313029282726252423222120191817161514131211109876543210
0QU01110a10Rm00opcode1RnRd
Decode fields Instruction Details Feature
Uaopcode
00000FMAXNM (vector)FEAT_AdvSIMD && FEAT_FP16
00001FMLA (vector)FEAT_AdvSIMD && FEAT_FP16
00010FADD (vector)FEAT_AdvSIMD && FEAT_FP16
00011FMULXFEAT_AdvSIMD && FEAT_FP16
00100FCMEQ (register)FEAT_AdvSIMD && FEAT_FP16
00101UNALLOCATED-
00110FMAX (vector)FEAT_AdvSIMD && FEAT_FP16
00111FRECPSFEAT_AdvSIMD && FEAT_FP16
01000FMINNM (vector)FEAT_AdvSIMD && FEAT_FP16
01001FMLS (vector)FEAT_AdvSIMD && FEAT_FP16
01010FSUB (vector)FEAT_AdvSIMD && FEAT_FP16
01011FAMAXFEAT_AdvSIMD && FEAT_FAMINMAX
0110xUNALLOCATED-
01110FMIN (vector)FEAT_AdvSIMD && FEAT_FP16
01111FRSQRTSFEAT_AdvSIMD && FEAT_FP16
1001UNALLOCATED-
10000FMAXNMP (vector)FEAT_AdvSIMD && FEAT_FP16
10010FADDP (vector)FEAT_AdvSIMD && FEAT_FP16
10011FMUL (vector)FEAT_AdvSIMD && FEAT_FP16
10100FCMGE (register)FEAT_AdvSIMD && FEAT_FP16
10101FACGEFEAT_AdvSIMD && FEAT_FP16
10110FMAXP (vector)FEAT_AdvSIMD && FEAT_FP16
10111FDIV (vector)FEAT_AdvSIMD && FEAT_FP16
11000FMINNMP (vector)FEAT_AdvSIMD && FEAT_FP16
11010FABDFEAT_AdvSIMD && FEAT_FP16
11011FAMINFEAT_AdvSIMD && FEAT_FAMINMAX
11100FCMGT (register)FEAT_AdvSIMD && FEAT_FP16
11101FACGTFEAT_AdvSIMD && FEAT_FP16
11110FMINP (vector)FEAT_AdvSIMD && FEAT_FP16
11111FSCALEFEAT_FP8

Advanced SIMD two-register miscellaneous (FP16)

The encodings in this section are decoded from Data Processing -- Scalar Floating-Point and Advanced SIMD.

313029282726252423222120191817161514131211109876543210
0QU01110a111100opcode10RnRd
Decode fields Instruction Details Feature
Uaopcode
x0xxxUNALLOCATED-
001xxxUNALLOCATED-
01111xUNALLOCATED-
1010xxUNALLOCATED-
111100UNALLOCATED-
0011000FRINTN (vector)FEAT_AdvSIMD && FEAT_FP16
0011001FRINTM (vector)FEAT_AdvSIMD && FEAT_FP16
0011010FCVTNS (vector)FEAT_AdvSIMD && FEAT_FP16
0011011FCVTMS (vector)FEAT_AdvSIMD && FEAT_FP16
0011100FCVTAS (vector)FEAT_AdvSIMD && FEAT_FP16
0011101SCVTF (vector, integer)FEAT_AdvSIMD && FEAT_FP16
0101100FCMGT (zero)FEAT_AdvSIMD && FEAT_FP16
0101101FCMEQ (zero)FEAT_AdvSIMD && FEAT_FP16
0101110FCMLT (zero)FEAT_AdvSIMD && FEAT_FP16
0101111FABS (vector)FEAT_AdvSIMD && FEAT_FP16
0111000FRINTP (vector)FEAT_AdvSIMD && FEAT_FP16
0111001FRINTZ (vector)FEAT_AdvSIMD && FEAT_FP16
0111010FCVTPS (vector)FEAT_AdvSIMD && FEAT_FP16
0111011FCVTZS (vector, integer)FEAT_AdvSIMD && FEAT_FP16
0111101FRECPEFEAT_AdvSIMD && FEAT_FP16
011111xUNALLOCATED-
1011000FRINTA (vector)FEAT_AdvSIMD && FEAT_FP16
1011001FRINTX (vector)FEAT_AdvSIMD && FEAT_FP16
1011010FCVTNU (vector)FEAT_AdvSIMD && FEAT_FP16
1011011FCVTMU (vector)FEAT_AdvSIMD && FEAT_FP16
1011100FCVTAU (vector)FEAT_AdvSIMD && FEAT_FP16
1011101UCVTF (vector, integer)FEAT_AdvSIMD && FEAT_FP16
11x1110UNALLOCATED-
1101100FCMGE (zero)FEAT_AdvSIMD && FEAT_FP16
1101101FCMLE (zero)FEAT_AdvSIMD && FEAT_FP16
1101111FNEG (vector)FEAT_AdvSIMD && FEAT_FP16
1111000UNALLOCATED-
1111001FRINTI (vector)FEAT_AdvSIMD && FEAT_FP16
1111010FCVTPU (vector)FEAT_AdvSIMD && FEAT_FP16
1111011FCVTZU (vector, integer)FEAT_AdvSIMD && FEAT_FP16
1111101FRSQRTEFEAT_AdvSIMD && FEAT_FP16
1111111FSQRT (vector)FEAT_AdvSIMD && FEAT_FP16

Advanced SIMD three-register extension

The encodings in this section are decoded from Data Processing -- Scalar Floating-Point and Advanced SIMD.

313029282726252423222120191817161514131211109876543210
0QU01110size0Rm1opcode1RnRd
Decode fields Instruction Details Feature
QUsizeopcode
00000UNALLOCATED-
00010SDOT (vector)FEAT_DotProd
0x00001UNALLOCATED-
0x01001UNALLOCATED-
0x01011UNALLOCATED-
0x1x0x1UNALLOCATED-
00x1010UNALLOCATED-
00x1100UNALLOCATED-
0000011UNALLOCATED-
0001110FCVTN, FCVTN2 (single-precision to 8-bit floating-point)FEAT_FP8
0001111FDOT (8-bit floating-point to single-precision, vector)FEAT_FP8DOT4
0011110FCVTN (half-precision to 8-bit floating-point)FEAT_FP8
0011111FDOT (8-bit floating-point to half-precision, vector)FEAT_FP8DOT2
01x1xx0UNALLOCATED-
0100011USDOT (vector)FEAT_I8MM
0101111FDOT (half-precision to single-precision, vector)FEAT_F16F32DOT
10000SQRDMLAH (vector)FEAT_RDM
10001SQRDMLSH (vector)FEAT_RDM
10010UDOT (vector)FEAT_DotProd
10011UNALLOCATED-
110xxFCMLAFEAT_FCMA
111x0FCADDFEAT_FCMA
1x01111UNALLOCATED-
1011111BFDOT (vector)FEAT_BF16
1111111BFMLALB, BFMLALT (vector)FEAT_BF16
001xxUNALLOCATED-
01101UNALLOCATED-
00001000FMLALLBB, FMLALLBT, FMLALLTB, FMLALLTT (vector)FMLALLBBFEAT_FP8FMA
00011000FMLALLBB, FMLALLBT, FMLALLTB, FMLALLTT (vector)FMLALLBTFEAT_FP8FMA
00111111FMLALB, FMLALT (vector)FMLALBFEAT_FP8FMA
110011xUNALLOCATED-
1!= 1001xxUNALLOCATED-
10x01101UNALLOCATED-
10001000FMLALLBB, FMLALLBT, FMLALLTB, FMLALLTT (vector)FMLALLTBFEAT_FP8FMA
10011000FMLALLBB, FMLALLBT, FMLALLTB, FMLALLTT (vector)FMLALLTTFEAT_FP8FMA
10011101FMMLA (widening, half-precision to single-precision)FEAT_F16F32MM
10100100SMMLA (vector)FEAT_I8MM
10100101USMMLA (vector)FEAT_I8MM
10111101FMMLA (non-widening)FEAT_F16MM
10111111FMLALB, FMLALT (vector)FMLALTFEAT_FP8FMA
11001101FMMLA (widening, 8-bit floating-point to half-precision)FEAT_F8F16MM
11011101BFMMLA (widening)FEAT_BF16
11100100UMMLA (vector)FEAT_I8MM
11100101UNALLOCATED-
11101101FMMLA (widening, 8-bit floating-point to single-precision)FEAT_F8F32MM
11111101UNALLOCATED-

Advanced SIMD two-register miscellaneous

The encodings in this section are decoded from Data Processing -- Scalar Floating-Point and Advanced SIMD.

313029282726252423222120191817161514131211109876543210
0QU01110size10000opcode10RnRd
Decode fields Instruction Details Feature
Usizeopcode
1000xUNALLOCATED-
10101UNALLOCATED-
0x011xxUNALLOCATED-
1011110UNALLOCATED-
111x110UNALLOCATED-
000000REV64FEAT_AdvSIMD
000001REV16 (vector)FEAT_AdvSIMD
000010SADDLPFEAT_AdvSIMD
000011SUQADDFEAT_AdvSIMD
000100CLS (vector)FEAT_AdvSIMD
000101CNTFEAT_AdvSIMD
000110SADALPFEAT_AdvSIMD
000111SQABSFEAT_AdvSIMD
001000CMGT (zero)FEAT_AdvSIMD
001001CMEQ (zero)FEAT_AdvSIMD
001010CMLT (zero)FEAT_AdvSIMD
001011ABSFEAT_AdvSIMD
010010XTN, XTN2FEAT_AdvSIMD
010011UNALLOCATED-
010100SQXTN, SQXTN2FEAT_AdvSIMD
00x10110FCVTN, FCVTN2 (double to single-precision, single to half-precision)FEAT_AdvSIMD
00x10111FCVTL, FCVTL2FEAT_AdvSIMD
00x11000FRINTN (vector)FEAT_AdvSIMD
00x11001FRINTM (vector)FEAT_AdvSIMD
00x11010FCVTNS (vector)FEAT_AdvSIMD
00x11011FCVTMS (vector)FEAT_AdvSIMD
00x11100FCVTAS (vector)FEAT_AdvSIMD
00x11101SCVTF (vector, integer)FEAT_AdvSIMD
00x11110FRINT32Z (vector)FEAT_FRINTTS
00x11111FRINT64Z (vector)FEAT_FRINTTS
01x01100FCMGT (zero)FEAT_AdvSIMD
01x01101FCMEQ (zero)FEAT_AdvSIMD
01x01110FCMLT (zero)FEAT_AdvSIMD
01x01111FABS (vector)FEAT_AdvSIMD
01x1x111UNALLOCATED-
01x11000FRINTP (vector)FEAT_AdvSIMD
01x11001FRINTZ (vector)FEAT_AdvSIMD
01x11010FCVTPS (vector)FEAT_AdvSIMD
01x11011FCVTZS (vector, integer)FEAT_AdvSIMD
01x11100URECPEFEAT_AdvSIMD
01x11101FRECPEFEAT_AdvSIMD
01010110BFCVTN, BFCVTN2FEAT_BF16
100000REV32 (vector)FEAT_AdvSIMD
100010UADDLPFEAT_AdvSIMD
100011USQADDFEAT_AdvSIMD
100100CLZ (vector)FEAT_AdvSIMD
100110UADALPFEAT_AdvSIMD
100111SQNEGFEAT_AdvSIMD
101000CMGE (zero)FEAT_AdvSIMD
101001CMLE (zero)FEAT_AdvSIMD
101010UNALLOCATED-
101011NEG (vector)FEAT_AdvSIMD
110010SQXTUN, SQXTUN2FEAT_AdvSIMD
110011SHLL, SHLL2FEAT_AdvSIMD
110100UQXTN, UQXTN2FEAT_AdvSIMD
1x010110UNALLOCATED-
10x00001UNALLOCATED-
10x11000FRINTA (vector)FEAT_AdvSIMD
10x11001FRINTX (vector)FEAT_AdvSIMD
10x11010FCVTNU (vector)FEAT_AdvSIMD
10x11011FCVTMU (vector)FEAT_AdvSIMD
10x11100FCVTAU (vector)FEAT_AdvSIMD
10x11101UCVTF (vector, integer)FEAT_AdvSIMD
10x11110FRINT32X (vector)FEAT_FRINTTS
10x11111FRINT64X (vector)FEAT_FRINTTS
10000101NOTFEAT_AdvSIMD
10010111F1CVTL, F1CVTL2, F2CVTL, F2CVTL2F1CVTL{2}FEAT_FP8
10100101RBIT (vector)FEAT_AdvSIMD
10110110FCVTXN, FCVTXN2FEAT_AdvSIMD
10110111F1CVTL, F1CVTL2, F2CVTL, F2CVTL2F2CVTL{2}FEAT_FP8
11x00x01UNALLOCATED-
11x01100FCMGE (zero)FEAT_AdvSIMD
11x01101FCMLE (zero)FEAT_AdvSIMD
11x01110UNALLOCATED-
11x01111FNEG (vector)FEAT_AdvSIMD
11x11000UNALLOCATED-
11x11001FRINTI (vector)FEAT_AdvSIMD
11x11010FCVTPU (vector)FEAT_AdvSIMD
11x11011FCVTZU (vector, integer)FEAT_AdvSIMD
11x11100URSQRTEFEAT_AdvSIMD
11x11101FRSQRTEFEAT_AdvSIMD
11x11111FSQRT (vector)FEAT_AdvSIMD
11010111BF1CVTL, BF1CVTL2, BF2CVTL, BF2CVTL2BF1CVTL{2}FEAT_FP8
11110111BF1CVTL, BF1CVTL2, BF2CVTL, BF2CVTL2BF2CVTL{2}FEAT_FP8

Advanced SIMD across lanes

The encodings in this section are decoded from Data Processing -- Scalar Floating-Point and Advanced SIMD.

313029282726252423222120191817161514131211109876543210
0QU01110size11000opcode10RnRd
Decode fields Instruction Details Feature
QUsizeopcode
x100xUNALLOCATED-
000x0UNALLOCATED-
00001UNALLOCATED-
01011UNALLOCATED-
100xxUNALLOCATED-
x0001xxUNALLOCATED-
x001101UNALLOCATED-
x0101xxUNALLOCATED-
x0111xxUNALLOCATED-
x1xx1xxUNALLOCATED-
000011SADDLVFEAT_AdvSIMD
001010SMAXVFEAT_AdvSIMD
011010SMINVFEAT_AdvSIMD
011011ADDVFEAT_AdvSIMD
0x001110UNALLOCATED-
00001100FMAXNMVHalf-precisionFEAT_AdvSIMD && FEAT_FP16
00001111FMAXVHalf-precisionFEAT_AdvSIMD && FEAT_FP16
01001100FMINNMVHalf-precisionFEAT_AdvSIMD && FEAT_FP16
01001111FMINVHalf-precisionFEAT_AdvSIMD && FEAT_FP16
100011UADDLVFEAT_AdvSIMD
101010UMAXVFEAT_AdvSIMD
111010UMINVFEAT_AdvSIMD
111011UNALLOCATED-
01x0011x0UNALLOCATED-
01x001111UNALLOCATED-
11x001110UNALLOCATED-
110001100FMAXNMVSingle-precisionFEAT_AdvSIMD
110001111FMAXVSingle-precisionFEAT_AdvSIMD
111001100FMINNMVSingle-precisionFEAT_AdvSIMD
111001111FMINVSingle-precisionFEAT_AdvSIMD

Advanced SIMD three different

The encodings in this section are decoded from Data Processing -- Scalar Floating-Point and Advanced SIMD.

313029282726252423222120191817161514131211109876543210
0QU01110size1Rmopcode00RnRd
Decode fields Instruction Details Feature
Uopcode
00000SADDL, SADDL2FEAT_AdvSIMD
00001SADDW, SADDW2FEAT_AdvSIMD
00010SSUBL, SSUBL2FEAT_AdvSIMD
00011SSUBW, SSUBW2FEAT_AdvSIMD
00100ADDHN, ADDHN2FEAT_AdvSIMD
00101SABAL, SABAL2FEAT_AdvSIMD
00110SUBHN, SUBHN2FEAT_AdvSIMD
00111SABDL, SABDL2FEAT_AdvSIMD
01000SMLAL, SMLAL2 (vector)FEAT_AdvSIMD
01001SQDMLAL, SQDMLAL2 (vector)FEAT_AdvSIMD
01010SMLSL, SMLSL2 (vector)FEAT_AdvSIMD
01011SQDMLSL, SQDMLSL2 (vector)FEAT_AdvSIMD
01100SMULL, SMULL2 (vector)FEAT_AdvSIMD
01101SQDMULL, SQDMULL2 (vector)FEAT_AdvSIMD
01110PMULL, PMULL2FEAT_AdvSIMD
01111UNALLOCATED-
10000UADDL, UADDL2FEAT_AdvSIMD
10001UADDW, UADDW2FEAT_AdvSIMD
10010USUBL, USUBL2FEAT_AdvSIMD
10011USUBW, USUBW2FEAT_AdvSIMD
10100RADDHN, RADDHN2FEAT_AdvSIMD
10101UABAL, UABAL2FEAT_AdvSIMD
10110RSUBHN, RSUBHN2FEAT_AdvSIMD
10111UABDL, UABDL2FEAT_AdvSIMD
11xx1UNALLOCATED-
11000UMLAL, UMLAL2 (vector)FEAT_AdvSIMD
11010UMLSL, UMLSL2 (vector)FEAT_AdvSIMD
11100UMULL, UMULL2 (vector)FEAT_AdvSIMD
11110UNALLOCATED-

Advanced SIMD three same

The encodings in this section are decoded from Data Processing -- Scalar Floating-Point and Advanced SIMD.

313029282726252423222120191817161514131211109876543210
0QU01110size1Rmopcode1RnRd
Decode fields Instruction Details Feature
Usizeopcode
000000SHADDFEAT_AdvSIMD
000001SQADDFEAT_AdvSIMD
000010SRHADDFEAT_AdvSIMD
000100SHSUBFEAT_AdvSIMD
000101SQSUBFEAT_AdvSIMD
000110CMGT (register)FEAT_AdvSIMD
000111CMGE (register)FEAT_AdvSIMD
001000SSHLFEAT_AdvSIMD
001001SQSHL (register)FEAT_AdvSIMD
001010SRSHLFEAT_AdvSIMD
001011SQRSHLFEAT_AdvSIMD
001100SMAXFEAT_AdvSIMD
001101SMINFEAT_AdvSIMD
001110SABDFEAT_AdvSIMD
001111SABAFEAT_AdvSIMD
010000ADD (vector)FEAT_AdvSIMD
010001CMTSTFEAT_AdvSIMD
010010MLA (vector)FEAT_AdvSIMD
010011MUL (vector)FEAT_AdvSIMD
010100SMAXPFEAT_AdvSIMD
010101SMINPFEAT_AdvSIMD
010110SQDMULH (vector)FEAT_AdvSIMD
010111ADDP (vector)FEAT_AdvSIMD
0x111101UNALLOCATED-
00x11000FMAXNM (vector)FEAT_AdvSIMD
00x11001FMLA (vector)FEAT_AdvSIMD
00x11010FADD (vector)FEAT_AdvSIMD
00x11011FMULXFEAT_AdvSIMD
00x11100FCMEQ (register)FEAT_AdvSIMD
00x11110FMAX (vector)FEAT_AdvSIMD
00x11111FRECPSFEAT_AdvSIMD
00000011AND (vector)FEAT_AdvSIMD
00011101FMLAL, FMLAL2 (vector)FMLALFEAT_FHM
00100011BIC (vector, register)FEAT_AdvSIMD
01x11000FMINNM (vector)FEAT_AdvSIMD
01x11001FMLS (vector)FEAT_AdvSIMD
01x11010FSUB (vector)FEAT_AdvSIMD
01x11011FAMAXFEAT_AdvSIMD && FEAT_FAMINMAX
01x11100UNALLOCATED-
01x11110FMIN (vector)FEAT_AdvSIMD
01x11111FRSQRTSFEAT_AdvSIMD
01000011ORR (vector, register)FEAT_AdvSIMD
01011101FMLSL, FMLSL2 (vector)FMLSLFEAT_FHM
01100011ORN (vector)FEAT_AdvSIMD
100000UHADDFEAT_AdvSIMD
100001UQADDFEAT_AdvSIMD
100010URHADDFEAT_AdvSIMD
100100UHSUBFEAT_AdvSIMD
100101UQSUBFEAT_AdvSIMD
100110CMHI (register)FEAT_AdvSIMD
100111CMHS (register)FEAT_AdvSIMD
101000USHLFEAT_AdvSIMD
101001UQSHL (register)FEAT_AdvSIMD
101010URSHLFEAT_AdvSIMD
101011UQRSHLFEAT_AdvSIMD
101100UMAXFEAT_AdvSIMD
101101UMINFEAT_AdvSIMD
101110UABDFEAT_AdvSIMD
101111UABAFEAT_AdvSIMD
110000SUB (vector)FEAT_AdvSIMD
110001CMEQ (register)FEAT_AdvSIMD
110010MLS (vector)FEAT_AdvSIMD
110011PMULFEAT_AdvSIMD
110100UMAXPFEAT_AdvSIMD
110101UMINPFEAT_AdvSIMD
110110SQRDMULH (vector)FEAT_AdvSIMD
110111UNALLOCATED-
1x111001UNALLOCATED-
10x11000FMAXNMP (vector)FEAT_AdvSIMD
10x11010FADDP (vector)FEAT_AdvSIMD
10x11011FMUL (vector)FEAT_AdvSIMD
10x11100FCMGE (register)FEAT_AdvSIMD
10x11101FACGEFEAT_AdvSIMD
10x11110FMAXP (vector)FEAT_AdvSIMD
10x11111FDIV (vector)FEAT_AdvSIMD
10000011EOR (vector)FEAT_AdvSIMD
10011001FMLAL, FMLAL2 (vector)FMLAL2FEAT_FHM
10100011BSLFEAT_AdvSIMD
11x11000FMINNMP (vector)FEAT_AdvSIMD
11x11010FABDFEAT_AdvSIMD
11x11011FAMINFEAT_AdvSIMD && FEAT_FAMINMAX
11x11100FCMGT (register)FEAT_AdvSIMD
11x11101FACGTFEAT_AdvSIMD
11x11110FMINP (vector)FEAT_AdvSIMD
11x11111FSCALEFEAT_FP8
11000011BITFEAT_AdvSIMD
11011001FMLSL, FMLSL2 (vector)FMLSL2FEAT_FHM
11100011BIFFEAT_AdvSIMD

Advanced SIMD modified immediate

The encodings in this section are decoded from Data Processing -- Scalar Floating-Point and Advanced SIMD.

313029282726252423222120191817161514131211109876543210
0Qop0111100000abccmodeo21defghRd
Decode fields Instruction Details Feature
Qopcmodeo2
00xx00MOVI32-bit shifted immediateFEAT_AdvSIMD
00xx10ORR (vector, immediate)32-bitFEAT_AdvSIMD
010x00MOVI16-bit shifted immediateFEAT_AdvSIMD
010x10ORR (vector, immediate)16-bitFEAT_AdvSIMD
0110x0MOVI32-bit shifting onesFEAT_AdvSIMD
011100MOVI8-bitFEAT_AdvSIMD
011110FMOV (vector, immediate)Single-precisionFEAT_AdvSIMD
011111FMOV (vector, immediate)Half-precisionFEAT_AdvSIMD && FEAT_FP16
0!= 11111UNALLOCATED-
11UNALLOCATED-
10xx00MVNI32-bit shifted immediateFEAT_AdvSIMD
10xx10BIC (vector, immediate)32-bitFEAT_AdvSIMD
110x00MVNI16-bit shifted immediateFEAT_AdvSIMD
110x10BIC (vector, immediate)16-bitFEAT_AdvSIMD
1110x0MVNI32-bit shifting onesFEAT_AdvSIMD
0111100MOVI64-bit scalarFEAT_AdvSIMD
0111110UNALLOCATED-
1111100MOVI64-bit vectorFEAT_AdvSIMD
1111110FMOV (vector, immediate)Double-precisionFEAT_AdvSIMD

Advanced SIMD shift by immediate

The encodings in this section are decoded from Data Processing -- Scalar Floating-Point and Advanced SIMD.

313029282726252423222120191817161514131211109876543210
0QU011110!= 0000immbopcode1RnRd
immh

The following constraints also apply to this encoding: immh != '0000'

Decode fields Instruction Details Feature
Uimmhopcode
!= 00000xxx1UNALLOCATED-
!= 00001x110UNALLOCATED-
!= 0000101x1UNALLOCATED-
!= 0000110xxUNALLOCATED-
!= 000011101UNALLOCATED-
0!= 000000000SSHRFEAT_AdvSIMD
0!= 000000010SSRAFEAT_AdvSIMD
0!= 000000100SRSHRFEAT_AdvSIMD
0!= 000000110SRSRAFEAT_AdvSIMD
0!= 000001x00UNALLOCATED-
0!= 000001010SHLFEAT_AdvSIMD
0!= 000001110SQSHL (immediate)FEAT_AdvSIMD
0!= 000010000SHRN, SHRN2FEAT_AdvSIMD
0!= 000010001RSHRN, RSHRN2FEAT_AdvSIMD
0!= 000010010SQSHRN, SQSHRN2FEAT_AdvSIMD
0!= 000010011SQRSHRN, SQRSHRN2FEAT_AdvSIMD
0!= 000010100SSHLL, SSHLL2FEAT_AdvSIMD
0!= 000011100SCVTF (vector, fixed-point)FEAT_AdvSIMD
0!= 000011111FCVTZS (vector, fixed-point)FEAT_AdvSIMD
1!= 000000000USHRFEAT_AdvSIMD
1!= 000000010USRAFEAT_AdvSIMD
1!= 000000100URSHRFEAT_AdvSIMD
1!= 000000110URSRAFEAT_AdvSIMD
1!= 000001000SRIFEAT_AdvSIMD
1!= 000001010SLIFEAT_AdvSIMD
1!= 000001100SQSHLUFEAT_AdvSIMD
1!= 000001110UQSHL (immediate)FEAT_AdvSIMD
1!= 000010000SQSHRUN, SQSHRUN2FEAT_AdvSIMD
1!= 000010001SQRSHRUN, SQRSHRUN2FEAT_AdvSIMD
1!= 000010010UQSHRN, UQSHRN2FEAT_AdvSIMD
1!= 000010011UQRSHRN, UQRSHRN2FEAT_AdvSIMD
1!= 000010100USHLL, USHLL2FEAT_AdvSIMD
1!= 000011100UCVTF (vector, fixed-point)FEAT_AdvSIMD
1!= 000011111FCVTZU (vector, fixed-point)FEAT_AdvSIMD

Advanced SIMD vector x indexed element

The encodings in this section are decoded from Data Processing -- Scalar Floating-Point and Advanced SIMD.

313029282726252423222120191817161514131211109876543210
0QU01111sizeLMRmopcodeH0RnRd
Decode fields Instruction Details Feature
QUsizeopcode
00010SMLAL, SMLAL2 (by element)FEAT_AdvSIMD
00011SQDMLAL, SQDMLAL2 (by element)FEAT_AdvSIMD
00110SMLSL, SMLSL2 (by element)FEAT_AdvSIMD
00111SQDMLSL, SQDMLSL2 (by element)FEAT_AdvSIMD
01000MUL (by element)FEAT_AdvSIMD
01010SMULL, SMULL2 (by element)FEAT_AdvSIMD
01011SQDMULL, SQDMULL2 (by element)FEAT_AdvSIMD
01100SQDMULH (by element)FEAT_AdvSIMD
01101SQRDMULH (by element)FEAT_AdvSIMD
01110SDOT (by element)FEAT_DotProd
0000000FDOT (8-bit floating-point to single-precision, by element)FEAT_FP8DOT4
0000001FMLA (by element)Vector, half-precisionFEAT_AdvSIMD && FEAT_FP16
0000101FMLS (by element)Vector, half-precisionFEAT_AdvSIMD && FEAT_FP16
0001001FMUL (by element)Vector, half-precisionFEAT_AdvSIMD && FEAT_FP16
0001111SUDOT (by element)FEAT_I8MM
0010x01UNALLOCATED-
0010000FDOT (8-bit floating-point to half-precision, by element)FEAT_FP8DOT2
0011001FDOT (half-precision to single-precision, by element)FEAT_F16F32DOT
0011111BFDOT (by element)FEAT_BF16
01x0001FMLA (by element)Vector, single-precision and double-precisionFEAT_AdvSIMD
01x0101FMLS (by element)Vector, single-precision and double-precisionFEAT_AdvSIMD
01x1001FMUL (by element)Vector, single-precision and double-precisionFEAT_AdvSIMD
0100000FMLAL, FMLAL2 (by element)FMLALFEAT_FHM
0100100FMLSL, FMLSL2 (by element)FMLSLFEAT_FHM
0101111USDOT (by element)FEAT_I8MM
0111111BFMLALB, BFMLALT (by element)FEAT_BF16
0!= 100100UNALLOCATED-
10xx1FCMLA (by element)FEAT_FCMA
10000MLA (by element)FEAT_AdvSIMD
10010UMLAL, UMLAL2 (by element)FEAT_AdvSIMD
10100MLS (by element)FEAT_AdvSIMD
10110UMLSL, UMLSL2 (by element)FEAT_AdvSIMD
11010UMULL, UMULL2 (by element)FEAT_AdvSIMD
11011UNALLOCATED-
11101SQRDMLAH (by element)FEAT_RDM
11110UDOT (by element)FEAT_DotProd
11111SQRDMLSH (by element)FEAT_RDM
10x1100UNALLOCATED-
1001001FMULX (by element)Vector, half-precisionFEAT_AdvSIMD && FEAT_FP16
1011001UNALLOCATED-
11x1001FMULX (by element)Vector, single-precision and double-precisionFEAT_AdvSIMD
1101000FMLAL, FMLAL2 (by element)FMLAL2FEAT_FHM
1101100FMLSL, FMLSL2 (by element)FMLSL2FEAT_FHM
1111x00UNALLOCATED-
00110000FMLALB, FMLALT (by element)FMLALBFEAT_FP8FMA
01001000FMLALLBB, FMLALLBT, FMLALLTB, FMLALLTT (by element)FMLALLBBFEAT_FP8FMA
01011000FMLALLBB, FMLALLBT, FMLALLTB, FMLALLTT (by element)FMLALLBTFEAT_FP8FMA
10110000FMLALB, FMLALT (by element)FMLALTFEAT_FP8FMA
11001000FMLALLBB, FMLALLBT, FMLALLTB, FMLALLTT (by element)FMLALLTBFEAT_FP8FMA
11011000FMLALLBB, FMLALLBT, FMLALLTB, FMLALLTT (by element)FMLALLTTFEAT_FP8FMA

Cryptographic three-register, imm2

The encodings in this section are decoded from Data Processing -- Scalar Floating-Point and Advanced SIMD.

313029282726252423222120191817161514131211109876543210
11001110010Rm10imm2opcodeRnRd
Decode fields Instruction Details Feature
opcode
00SM3TT1AFEAT_SM3
01SM3TT1BFEAT_SM3
10SM3TT2AFEAT_SM3
11SM3TT2BFEAT_SM3

Cryptographic three-register SHA 512

The encodings in this section are decoded from Data Processing -- Scalar Floating-Point and Advanced SIMD.

313029282726252423222120191817161514131211109876543210
11001110011Rm1O00opcodeRnRd
Decode fields Instruction Details Feature
Oopcode
000SHA512HFEAT_SHA512
001SHA512H2FEAT_SHA512
010SHA512SU1FEAT_SHA512
011RAX1FEAT_SHA3
100SM3PARTW1FEAT_SM3
101SM3PARTW2FEAT_SM3
110SM4EKEYFEAT_SM4
111UNALLOCATED-

Cryptographic four-register

The encodings in this section are decoded from Data Processing -- Scalar Floating-Point and Advanced SIMD.

313029282726252423222120191817161514131211109876543210
110011100Op0Rm0RaRnRd
Decode fields Instruction Details Feature
Op0
00EOR3FEAT_SHA3
01BCAXFEAT_SHA3
10SM3SS1FEAT_SM3
11UNALLOCATED-

Cryptographic two-register SHA 512

The encodings in this section are decoded from Data Processing -- Scalar Floating-Point and Advanced SIMD.

313029282726252423222120191817161514131211109876543210
11001110110000001000opcodeRnRd
Decode fields Instruction Details Feature
opcode
00SHA512SU0FEAT_SHA512
01SM4EFEAT_SM4
1xUNALLOCATED-

Conversion between floating-point and fixed-point

The encodings in this section are decoded from Data Processing -- Scalar Floating-Point and Advanced SIMD.

313029282726252423222120191817161514131211109876543210
sf0S11110ftype0rmodeopcodescaleRnRd
Decode fields Instruction Details Feature
sfSftypermodeopcode
01xxUNALLOCATED-
0100xxUNALLOCATED-
0!= 10x101xUNALLOCATED-
0!= 100x00xUNALLOCATED-
0!= 10100xxUNALLOCATED-
1UNALLOCATED-
000000010SCVTF (scalar, fixed-point)32-bit to single-precisionFEAT_FP
000000011UCVTF (scalar, fixed-point)32-bit to single-precisionFEAT_FP
000011000FCVTZS (scalar, fixed-point)Single-precision to 32-bitFEAT_FP
000011001FCVTZU (scalar, fixed-point)Single-precision to 32-bitFEAT_FP
000100010SCVTF (scalar, fixed-point)32-bit to double-precisionFEAT_FP
000100011UCVTF (scalar, fixed-point)32-bit to double-precisionFEAT_FP
000111000FCVTZS (scalar, fixed-point)Double-precision to 32-bitFEAT_FP
000111001FCVTZU (scalar, fixed-point)Double-precision to 32-bitFEAT_FP
001100010SCVTF (scalar, fixed-point)32-bit to half-precisionFEAT_FP16
001100011UCVTF (scalar, fixed-point)32-bit to half-precisionFEAT_FP16
001111000FCVTZS (scalar, fixed-point)Half-precision to 32-bitFEAT_FP16
001111001FCVTZU (scalar, fixed-point)Half-precision to 32-bitFEAT_FP16
100000010SCVTF (scalar, fixed-point)64-bit to single-precisionFEAT_FP
100000011UCVTF (scalar, fixed-point)64-bit to single-precisionFEAT_FP
100011000FCVTZS (scalar, fixed-point)Single-precision to 64-bitFEAT_FP
100011001FCVTZU (scalar, fixed-point)Single-precision to 64-bitFEAT_FP
100100010SCVTF (scalar, fixed-point)64-bit to double-precisionFEAT_FP
100100011UCVTF (scalar, fixed-point)64-bit to double-precisionFEAT_FP
100111000FCVTZS (scalar, fixed-point)Double-precision to 64-bitFEAT_FP
100111001FCVTZU (scalar, fixed-point)Double-precision to 64-bitFEAT_FP
101100010SCVTF (scalar, fixed-point)64-bit to half-precisionFEAT_FP16
101100011UCVTF (scalar, fixed-point)64-bit to half-precisionFEAT_FP16
101111000FCVTZS (scalar, fixed-point)Half-precision to 64-bitFEAT_FP16
101111001FCVTZU (scalar, fixed-point)Half-precision to 64-bitFEAT_FP16

Conversion between floating-point and integer

The encodings in this section are decoded from Data Processing -- Scalar Floating-Point and Advanced SIMD.

313029282726252423222120191817161514131211109876543210
sf0S11110ftype1rmodeopcode000000RnRd
Decode fields Instruction Details Feature
sfSftypermodeopcode
010x0UNALLOCATED-
010x1!= 11x0xxUNALLOCATED-
010x110xUNALLOCATED-
011x111xUNALLOCATED-
0!= 100110xUNALLOCATED-
1UNALLOCATED-
00x00111xUNALLOCATED-
000000000FCVTNS (scalar)Single-precision to 32-bitFEAT_FP
000000001FCVTNU (scalar)Single-precision to 32-bitFEAT_FP
000000010SCVTF (scalar, integer)32-bit to single-precisionFEAT_FP
000000011UCVTF (scalar, integer)32-bit to single-precisionFEAT_FP
000000100FCVTAS (scalar)Single-precision to 32-bitFEAT_FP
000000101FCVTAU (scalar)Single-precision to 32-bitFEAT_FP
000000110FMOV (general)Single-precision to 32-bitFEAT_FP
000000111FMOV (general)32-bit to single-precisionFEAT_FP
000001000FCVTPS (scalar)Single-precision to 32-bitFEAT_FP
000001001FCVTPU (scalar)Single-precision to 32-bitFEAT_FP
00001x1xxUNALLOCATED-
000010000FCVTMS (scalar)Single-precision to 32-bitFEAT_FP
000010001FCVTMU (scalar)Single-precision to 32-bitFEAT_FP
000011000FCVTZS (scalar, integer)Single-precision to 32-bitFEAT_FP
000011001FCVTZU (scalar, integer)Single-precision to 32-bitFEAT_FP
0000!= 0001xUNALLOCATED-
00010x11xUNALLOCATED-
000100000FCVTNS (scalar)Double-precision to 32-bitFEAT_FP
000100001FCVTNU (scalar)Double-precision to 32-bitFEAT_FP
000100010SCVTF (scalar, integer)32-bit to double-precisionFEAT_FP
000100011UCVTF (scalar, integer)32-bit to double-precisionFEAT_FP
000100100FCVTAS (scalar)Double-precision to 32-bitFEAT_FP
000100101FCVTAU (scalar)Double-precision to 32-bitFEAT_FP
000101000FCVTPS (scalar)Double-precision to 32-bitFEAT_FP
000101001FCVTPU (scalar)Double-precision to 32-bitFEAT_FP
000101010FCVTNS (scalar SIMD&FP)Double-precision to 32-bitFEAT_FPRCVT
000101011FCVTNU (scalar SIMD&FP)Double-precision to 32-bitFEAT_FPRCVT
000110000FCVTMS (scalar)Double-precision to 32-bitFEAT_FP
000110001FCVTMU (scalar)Double-precision to 32-bitFEAT_FP
000110010FCVTPS (scalar SIMD&FP)Double-precision to 32-bitFEAT_FPRCVT
000110011FCVTPU (scalar SIMD&FP)Double-precision to 32-bitFEAT_FPRCVT
000110100FCVTMS (scalar SIMD&FP)Double-precision to 32-bitFEAT_FPRCVT
000110101FCVTMU (scalar SIMD&FP)Double-precision to 32-bitFEAT_FPRCVT
000110110FCVTZS (scalar SIMD&FP)Double-precision to 32-bitFEAT_FPRCVT
000110111FCVTZU (scalar SIMD&FP)Double-precision to 32-bitFEAT_FPRCVT
000111000FCVTZS (scalar, integer)Double-precision to 32-bitFEAT_FP
000111001FCVTZU (scalar, integer)Double-precision to 32-bitFEAT_FP
000111010FCVTAS (scalar SIMD&FP)Double-precision to 32-bitFEAT_FPRCVT
000111011FCVTAU (scalar SIMD&FP)Double-precision to 32-bitFEAT_FPRCVT
000111100SCVTF (scalar SIMD&FP)32-bit to double-precisionFEAT_FPRCVT
000111101UCVTF (scalar SIMD&FP)32-bit to double-precisionFEAT_FPRCVT
000111110FJCVTZSFEAT_JSCVT
000111111UNALLOCATED-
00101111xUNALLOCATED-
001100000FCVTNS (scalar)Half-precision to 32-bitFEAT_FP16
001100001FCVTNU (scalar)Half-precision to 32-bitFEAT_FP16
001100010SCVTF (scalar, integer)32-bit to half-precisionFEAT_FP16
001100011UCVTF (scalar, integer)32-bit to half-precisionFEAT_FP16
001100100FCVTAS (scalar)Half-precision to 32-bitFEAT_FP16
001100101FCVTAU (scalar)Half-precision to 32-bitFEAT_FP16
001100110FMOV (general)Half-precision to 32-bitFEAT_FP16
001100111FMOV (general)32-bit to half-precisionFEAT_FP16
001101000FCVTPS (scalar)Half-precision to 32-bitFEAT_FP16
001101001FCVTPU (scalar)Half-precision to 32-bitFEAT_FP16
001101010FCVTNS (scalar SIMD&FP)Half-precision to 32-bitFEAT_FPRCVT
001101011FCVTNU (scalar SIMD&FP)Half-precision to 32-bitFEAT_FPRCVT
001110000FCVTMS (scalar)Half-precision to 32-bitFEAT_FP16
001110001FCVTMU (scalar)Half-precision to 32-bitFEAT_FP16
001110010FCVTPS (scalar SIMD&FP)Half-precision to 32-bitFEAT_FPRCVT
001110011FCVTPU (scalar SIMD&FP)Half-precision to 32-bitFEAT_FPRCVT
001110100FCVTMS (scalar SIMD&FP)Half-precision to 32-bitFEAT_FPRCVT
001110101FCVTMU (scalar SIMD&FP)Half-precision to 32-bitFEAT_FPRCVT
001110110FCVTZS (scalar SIMD&FP)Half-precision to 32-bitFEAT_FPRCVT
001110111FCVTZU (scalar SIMD&FP)Half-precision to 32-bitFEAT_FPRCVT
001111000FCVTZS (scalar, integer)Half-precision to 32-bitFEAT_FP16
001111001FCVTZU (scalar, integer)Half-precision to 32-bitFEAT_FP16
001111010FCVTAS (scalar SIMD&FP)Half-precision to 32-bitFEAT_FPRCVT
001111011FCVTAU (scalar SIMD&FP)Half-precision to 32-bitFEAT_FPRCVT
001111100SCVTF (scalar SIMD&FP)32-bit to half-precisionFEAT_FPRCVT
001111101UCVTF (scalar SIMD&FP)32-bit to half-precisionFEAT_FPRCVT
10x01111xUNALLOCATED-
10000x11xUNALLOCATED-
100000000FCVTNS (scalar)Single-precision to 64-bitFEAT_FP
100000001FCVTNU (scalar)Single-precision to 64-bitFEAT_FP
100000010SCVTF (scalar, integer)64-bit to single-precisionFEAT_FP
100000011UCVTF (scalar, integer)64-bit to single-precisionFEAT_FP
100000100FCVTAS (scalar)Single-precision to 64-bitFEAT_FP
100000101FCVTAU (scalar)Single-precision to 64-bitFEAT_FP
100001000FCVTPS (scalar)Single-precision to 64-bitFEAT_FP
100001001FCVTPU (scalar)Single-precision to 64-bitFEAT_FP
100001010FCVTNS (scalar SIMD&FP)Single-precision to 64-bitFEAT_FPRCVT
100001011FCVTNU (scalar SIMD&FP)Single-precision to 64-bitFEAT_FPRCVT
100010000FCVTMS (scalar)Single-precision to 64-bitFEAT_FP
100010001FCVTMU (scalar)Single-precision to 64-bitFEAT_FP
100010010FCVTPS (scalar SIMD&FP)Single-precision to 64-bitFEAT_FPRCVT
100010011FCVTPU (scalar SIMD&FP)Single-precision to 64-bitFEAT_FPRCVT
100010100FCVTMS (scalar SIMD&FP)Single-precision to 64-bitFEAT_FPRCVT
100010101FCVTMU (scalar SIMD&FP)Single-precision to 64-bitFEAT_FPRCVT
100010110FCVTZS (scalar SIMD&FP)Single-precision to 64-bitFEAT_FPRCVT
100010111FCVTZU (scalar SIMD&FP)Single-precision to 64-bitFEAT_FPRCVT
100011000FCVTZS (scalar, integer)Single-precision to 64-bitFEAT_FP
100011001FCVTZU (scalar, integer)Single-precision to 64-bitFEAT_FP
100011010FCVTAS (scalar SIMD&FP)Single-precision to 64-bitFEAT_FPRCVT
100011011FCVTAU (scalar SIMD&FP)Single-precision to 64-bitFEAT_FPRCVT
100011100SCVTF (scalar SIMD&FP)64-bit to single-precisionFEAT_FPRCVT
100011101UCVTF (scalar SIMD&FP)64-bit to single-precisionFEAT_FPRCVT
100100000FCVTNS (scalar)Double-precision to 64-bitFEAT_FP
100100001FCVTNU (scalar)Double-precision to 64-bitFEAT_FP
100100010SCVTF (scalar, integer)64-bit to double-precisionFEAT_FP
100100011UCVTF (scalar, integer)64-bit to double-precisionFEAT_FP
100100100FCVTAS (scalar)Double-precision to 64-bitFEAT_FP
100100101FCVTAU (scalar)Double-precision to 64-bitFEAT_FP
100100110FMOV (general)Double-precision to 64-bitFEAT_FP
100100111FMOV (general)64-bit to double-precisionFEAT_FP
100101x1xUNALLOCATED-
100101000FCVTPS (scalar)Double-precision to 64-bitFEAT_FP
100101001FCVTPU (scalar)Double-precision to 64-bitFEAT_FP
10011x1xxUNALLOCATED-
10011x!= 00x01xUNALLOCATED-
100110000FCVTMS (scalar)Double-precision to 64-bitFEAT_FP
100110001FCVTMU (scalar)Double-precision to 64-bitFEAT_FP
100111000FCVTZS (scalar, integer)Double-precision to 64-bitFEAT_FP
100111001FCVTZU (scalar, integer)Double-precision to 64-bitFEAT_FP
101001110FMOV (general)Top half of 128-bit to 64-bitFEAT_FP
101001111FMOV (general)64-bit to top half of 128-bitFEAT_FP
101100000FCVTNS (scalar)Half-precision to 64-bitFEAT_FP16
101100001FCVTNU (scalar)Half-precision to 64-bitFEAT_FP16
101100010SCVTF (scalar, integer)64-bit to half-precisionFEAT_FP16
101100011UCVTF (scalar, integer)64-bit to half-precisionFEAT_FP16
101100100FCVTAS (scalar)Half-precision to 64-bitFEAT_FP16
101100101FCVTAU (scalar)Half-precision to 64-bitFEAT_FP16
101100110FMOV (general)Half-precision to 64-bitFEAT_FP16
101100111FMOV (general)64-bit to half-precisionFEAT_FP16
101101000FCVTPS (scalar)Half-precision to 64-bitFEAT_FP16
101101001FCVTPU (scalar)Half-precision to 64-bitFEAT_FP16
101101010FCVTNS (scalar SIMD&FP)Half-precision to 64-bitFEAT_FPRCVT
101101011FCVTNU (scalar SIMD&FP)Half-precision to 64-bitFEAT_FPRCVT
101110000FCVTMS (scalar)Half-precision to 64-bitFEAT_FP16
101110001FCVTMU (scalar)Half-precision to 64-bitFEAT_FP16
101110010FCVTPS (scalar SIMD&FP)Half-precision to 64-bitFEAT_FPRCVT
101110011FCVTPU (scalar SIMD&FP)Half-precision to 64-bitFEAT_FPRCVT
101110100FCVTMS (scalar SIMD&FP)Half-precision to 64-bitFEAT_FPRCVT
101110101FCVTMU (scalar SIMD&FP)Half-precision to 64-bitFEAT_FPRCVT
101110110FCVTZS (scalar SIMD&FP)Half-precision to 64-bitFEAT_FPRCVT
101110111FCVTZU (scalar SIMD&FP)Half-precision to 64-bitFEAT_FPRCVT
101111000FCVTZS (scalar, integer)Half-precision to 64-bitFEAT_FP16
101111001FCVTZU (scalar, integer)Half-precision to 64-bitFEAT_FP16
101111010FCVTAS (scalar SIMD&FP)Half-precision to 64-bitFEAT_FPRCVT
101111011FCVTAU (scalar SIMD&FP)Half-precision to 64-bitFEAT_FPRCVT
101111100SCVTF (scalar SIMD&FP)64-bit to half-precisionFEAT_FPRCVT
101111101UCVTF (scalar SIMD&FP)64-bit to half-precisionFEAT_FPRCVT

Floating-point data-processing (1 source)

The encodings in this section are decoded from Data Processing -- Scalar Floating-Point and Advanced SIMD.

313029282726252423222120191817161514131211109876543210
M0S11110ftype1opcode10000RnRd
Decode fields Instruction Details Feature
MSftypeopcode
001xxxxxUNALLOCATED-
000x0101xxUNALLOCATED-
000x011xxxUNALLOCATED-
0000000000FMOV (register)Single-precisionFEAT_FP
0000000001FABS (scalar)Single-precisionFEAT_FP
0000000010FNEG (scalar)Single-precisionFEAT_FP
0000000011FSQRT (scalar)Single-precisionFEAT_FP
00000001x0UNALLOCATED-
0000000101FCVTSingle-precision to double-precisionFEAT_FP
0000000111FCVTSingle-precision to half-precisionFEAT_FP
0000001000FRINTN (scalar)Single-precisionFEAT_FP
0000001001FRINTP (scalar)Single-precisionFEAT_FP
0000001010FRINTM (scalar)Single-precisionFEAT_FP
0000001011FRINTZ (scalar)Single-precisionFEAT_FP
0000001100FRINTA (scalar)Single-precisionFEAT_FP
0000001110FRINTX (scalar)Single-precisionFEAT_FP
0000001111FRINTI (scalar)Single-precisionFEAT_FP
0000010000FRINT32Z (scalar)Single-precisionFEAT_FRINTTS
0000010001FRINT32X (scalar)Single-precisionFEAT_FRINTTS
0000010010FRINT64Z (scalar)Single-precisionFEAT_FRINTTS
0000010011FRINT64X (scalar)Single-precisionFEAT_FRINTTS
0001000000FMOV (register)Double-precisionFEAT_FP
0001000001FABS (scalar)Double-precisionFEAT_FP
0001000010FNEG (scalar)Double-precisionFEAT_FP
0001000011FSQRT (scalar)Double-precisionFEAT_FP
0001000100FCVTDouble-precision to single-precisionFEAT_FP
0001000101UNALLOCATED-
0001000110BFCVTFEAT_BF16
0001000111FCVTDouble-precision to half-precisionFEAT_FP
0001001000FRINTN (scalar)Double-precisionFEAT_FP
0001001001FRINTP (scalar)Double-precisionFEAT_FP
0001001010FRINTM (scalar)Double-precisionFEAT_FP
0001001011FRINTZ (scalar)Double-precisionFEAT_FP
0001001100FRINTA (scalar)Double-precisionFEAT_FP
0001001110FRINTX (scalar)Double-precisionFEAT_FP
0001001111FRINTI (scalar)Double-precisionFEAT_FP
0001010000FRINT32Z (scalar)Double-precisionFEAT_FRINTTS
0001010001FRINT32X (scalar)Double-precisionFEAT_FRINTTS
0001010010FRINT64Z (scalar)Double-precisionFEAT_FRINTTS
0001010011FRINT64X (scalar)Double-precisionFEAT_FRINTTS
00100xxxxxUNALLOCATED-
0011000000FMOV (register)Half-precisionFEAT_FP16
0011000001FABS (scalar)Half-precisionFEAT_FP16
0011000010FNEG (scalar)Half-precisionFEAT_FP16
0011000011FSQRT (scalar)Half-precisionFEAT_FP16
0011000100FCVTHalf-precision to single-precisionFEAT_FP
0011000101FCVTHalf-precision to double-precisionFEAT_FP
001100011xUNALLOCATED-
0011001000FRINTN (scalar)Half-precisionFEAT_FP16
0011001001FRINTP (scalar)Half-precisionFEAT_FP16
0011001010FRINTM (scalar)Half-precisionFEAT_FP16
0011001011FRINTZ (scalar)Half-precisionFEAT_FP16
0011001100FRINTA (scalar)Half-precisionFEAT_FP16
0011001110FRINTX (scalar)Half-precisionFEAT_FP16
0011001111FRINTI (scalar)Half-precisionFEAT_FP16
001101xxxxUNALLOCATED-
00!= 10001101UNALLOCATED-
01UNALLOCATED-
1UNALLOCATED-

Floating-point compare

The encodings in this section are decoded from Data Processing -- Scalar Floating-Point and Advanced SIMD.

313029282726252423222120191817161514131211109876543210
M0S11110ftype1Rmop1000Rnopcode2
Decode fields Instruction Details Feature
MSftypeopopcode2
0000xx01xUNALLOCATED-
0000xx1xxUNALLOCATED-
0000!= xx000xx001UNALLOCATED-
00!= 00UNALLOCATED-
00000000000FCMPSingle-precisionFEAT_FP
00000001000FCMPSingle-precision, zeroFEAT_FP
00000010000FCMPESingle-precisionFEAT_FP
00000011000FCMPESingle-precision, zeroFEAT_FP
00010000000FCMPDouble-precisionFEAT_FP
00010001000FCMPDouble-precision, zeroFEAT_FP
00010010000FCMPEDouble-precisionFEAT_FP
00010011000FCMPEDouble-precision, zeroFEAT_FP
001000xx000UNALLOCATED-
00110000000FCMPHalf-precisionFEAT_FP16
00110001000FCMPHalf-precision, zeroFEAT_FP16
00110010000FCMPEHalf-precisionFEAT_FP16
00110011000FCMPEHalf-precision, zeroFEAT_FP16
01UNALLOCATED-
1UNALLOCATED-

Floating-point immediate

The encodings in this section are decoded from Data Processing -- Scalar Floating-Point and Advanced SIMD.

313029282726252423222120191817161514131211109876543210
M0S11110ftype1imm8100imm5Rd
Decode fields Instruction Details Feature
MSftypeimm5
00!= 00000UNALLOCATED-
000000000FMOV (scalar, immediate)Single-precisionFEAT_FP
000100000FMOV (scalar, immediate)Double-precisionFEAT_FP
001000000UNALLOCATED-
001100000FMOV (scalar, immediate)Half-precisionFEAT_FP16
01UNALLOCATED-
1UNALLOCATED-

Floating-point conditional compare

The encodings in this section are decoded from Data Processing -- Scalar Floating-Point and Advanced SIMD.

313029282726252423222120191817161514131211109876543210
M0S11110ftype1Rmcond01Rnopnzcv
Decode fields Instruction Details Feature
MSftypeop
00000FCCMPSingle-precisionFEAT_FP
00001FCCMPESingle-precisionFEAT_FP
00010FCCMPDouble-precisionFEAT_FP
00011FCCMPEDouble-precisionFEAT_FP
0010UNALLOCATED-
00110FCCMPHalf-precisionFEAT_FP16
00111FCCMPEHalf-precisionFEAT_FP16
01UNALLOCATED-
1UNALLOCATED-

Floating-point data-processing (2 source)

The encodings in this section are decoded from Data Processing -- Scalar Floating-Point and Advanced SIMD.

313029282726252423222120191817161514131211109876543210
M0S11110ftype1Rmopcode10RnRd
Decode fields Instruction Details Feature
MSftypeopcode
00000000FMUL (scalar)Single-precisionFEAT_FP
00000001FDIV (scalar)Single-precisionFEAT_FP
00000010FADD (scalar)Single-precisionFEAT_FP
00000011FSUB (scalar)Single-precisionFEAT_FP
00000100FMAX (scalar)Single-precisionFEAT_FP
00000101FMIN (scalar)Single-precisionFEAT_FP
00000110FMAXNM (scalar)Single-precisionFEAT_FP
00000111FMINNM (scalar)Single-precisionFEAT_FP
00001000FNMUL (scalar)Single-precisionFEAT_FP
00010000FMUL (scalar)Double-precisionFEAT_FP
00010001FDIV (scalar)Double-precisionFEAT_FP
00010010FADD (scalar)Double-precisionFEAT_FP
00010011FSUB (scalar)Double-precisionFEAT_FP
00010100FMAX (scalar)Double-precisionFEAT_FP
00010101FMIN (scalar)Double-precisionFEAT_FP
00010110FMAXNM (scalar)Double-precisionFEAT_FP
00010111FMINNM (scalar)Double-precisionFEAT_FP
00011000FNMUL (scalar)Double-precisionFEAT_FP
0010UNALLOCATED-
00110000FMUL (scalar)Half-precisionFEAT_FP16
00110001FDIV (scalar)Half-precisionFEAT_FP16
00110010FADD (scalar)Half-precisionFEAT_FP16
00110011FSUB (scalar)Half-precisionFEAT_FP16
00110100FMAX (scalar)Half-precisionFEAT_FP16
00110101FMIN (scalar)Half-precisionFEAT_FP16
00110110FMAXNM (scalar)Half-precisionFEAT_FP16
00110111FMINNM (scalar)Half-precisionFEAT_FP16
00111000FNMUL (scalar)Half-precisionFEAT_FP16
00!= 101001UNALLOCATED-
00!= 10101xUNALLOCATED-
00!= 1011xxUNALLOCATED-
01UNALLOCATED-
1UNALLOCATED-

Floating-point conditional select

The encodings in this section are decoded from Data Processing -- Scalar Floating-Point and Advanced SIMD.

313029282726252423222120191817161514131211109876543210
M0S11110ftype1Rmcond11RnRd
Decode fields Instruction Details Feature
MSftype
0000FCSELSingle-precisionFEAT_FP
0001FCSELDouble-precisionFEAT_FP
0010UNALLOCATED-
0011FCSELHalf-precisionFEAT_FP16
01UNALLOCATED-
1UNALLOCATED-

Floating-point data-processing (3 source)

The encodings in this section are decoded from Data Processing -- Scalar Floating-Point and Advanced SIMD.

313029282726252423222120191817161514131211109876543210
M0S11111ftypeo1Rmo0RaRnRd
Decode fields Instruction Details Feature
MSftypeo1o0
000000FMADDSingle-precisionFEAT_FP
000001FMSUBSingle-precisionFEAT_FP
000010FNMADDSingle-precisionFEAT_FP
000011FNMSUBSingle-precisionFEAT_FP
000100FMADDDouble-precisionFEAT_FP
000101FMSUBDouble-precisionFEAT_FP
000110FNMADDDouble-precisionFEAT_FP
000111FNMSUBDouble-precisionFEAT_FP
0010UNALLOCATED-
001100FMADDHalf-precisionFEAT_FP16
001101FMSUBHalf-precisionFEAT_FP16
001110FNMADDHalf-precisionFEAT_FP16
001111FNMSUBHalf-precisionFEAT_FP16
01UNALLOCATED-
1UNALLOCATED-

Loads and Stores

The encodings in this section are decoded from A64 instruction set encoding.

313029282726252423222120191817161514131211109876543210
op01op10op2
Decode fields Instruction details
op0op1op2
0000 0 1xx1xxxxxxxxxxx UNALLOCATED
0001 1 1xx1xxxxxxxxxxx UNALLOCATED
0x00 0 00x1xxxxxxxxxxx Compare and swap pair
0x00 0 10x0xxxxxxxxxxx UNALLOCATED
0x00 0 11x0xxxxxxxxxxx Compare and swap pair (unprivileged)
0x00 1 00x000000xxxxxx Advanced SIMD load/store multiple structures
0x00 1 00x000001xxxxxx UNALLOCATED
0x00 1 01x0xxxxxxxxxxx Advanced SIMD load/store multiple structures (post-indexed)
0x00 1 0xx1xxxxxxxxxxx UNALLOCATED
0x00 1 10x10001xxxxxxx UNALLOCATED
0x00 1 10x1001xxxxxxxx UNALLOCATED
0x00 1 10x101xxxxxxxxx UNALLOCATED
0x00 1 10x11xxxxxxxxxx UNALLOCATED
0x00 1 10xx0000xxxxxxx Advanced SIMD load/store single structure
0x00 1 11xxxxxxxxxxxxx Advanced SIMD load/store single structure (post-indexed)
0x00 1 x0x00001xxxxxxx UNALLOCATED
0x00 1 x0x0001xxxxxxxx UNALLOCATED
0x00 1 x0x001xxxxxxxxx UNALLOCATED
0x00 1 x0x01xxxxxxxxxx UNALLOCATED
0x01 0 1xx0xxxxxxxxx11 UNALLOCATED
0x01 0 1xx1xxxxx000010 RCW compare and swap
0x01 0 1xx1xxxxx000011 RCW compare and swap pair
0x01 0 1xx1xxxxx00011x UNALLOCATED
0x01 0 1xx1xxxxx001x1x UNALLOCATED
0x01 0 1xx1xxxxx01xx1x UNALLOCATED
0x01 0 1xx1xxxxx1xxx1x UNALLOCATED
0x01 0 1xx1xxxxxxxxx00 128-bit atomic memory operations
0x01 0 1xx1xxxxxxxxx01 Atomic memory operations (unprivileged)
1001 0 1xx0xxxxxxxxx11 UNALLOCATED
1001 1 1xx1xxxxxxxxxxx UNALLOCATED
100x 0 1xx1xxxxxxxxxxx UNALLOCATED
1101 0 1000111110xxx11 GCS load/store
1101 0 1100111110xxx11 UNALLOCATED
1101 0 1x000xxxxxxxx11 UNALLOCATED
1101 0 1x0010xxxxxxx11 UNALLOCATED
1101 0 1x00110xxxxxx11 UNALLOCATED
1101 0 1x001110xxxxx11 UNALLOCATED
1101 0 1x0011110xxxx11 UNALLOCATED
1101 0 1x00111111xxx11 UNALLOCATED
1101 0 1x10xxxxxxxxx11 UNALLOCATED
1101 0 1xx1xxxxxxxxxxx Load/store memory tags
1x00 0 00x1xxxxxxxxxxx Load/store exclusive pair
1x00 0 10x0xxxxxxxxxxx Load/store exclusive register (unprivileged)
1x00 0 11x0xxxxxxxxxxx Compare and swap (unprivileged)
1x00 1 UNALLOCATED
x100 0 1xx1xxxxxxxxxxx UNALLOCATED
x101 1 1xx1xxxxxxxxxxx UNALLOCATED
xx00 0 00x0xxxxxxxxxxx Load/store exclusive register
xx00 0 01x0xxxxxxxxxxx Load/store ordered
xx00 0 01x1xxxxxxxxxxx Compare and swap
xx01 0 10x0xxxxxxxxx10 Load/store ordered register pair
xx01 0 11x000000000010 Load/store ordered (writeback)
xx01 0 11x000000000110 UNALLOCATED
xx01 0 11x000000001x10 UNALLOCATED
xx01 0 11x00000001xx10 UNALLOCATED
xx01 0 11x0000001xxx10 UNALLOCATED
xx01 0 11x000001xxxx10 UNALLOCATED
xx01 0 11x00001xxxxx10 UNALLOCATED
xx01 0 11x0001xxxxxx10 UNALLOCATED
xx01 0 11x001xxxxxxx10 UNALLOCATED
xx01 0 11x01xxxxxxxx10 UNALLOCATED
xx01 0 1xx0xxxxxxxxx00 Load/store ordered (unscaled immediate)
xx01 1 1xx0xxxxxxxxx00 UNALLOCATED
xx01 1 1xx0xxxxxxxxx10 Load/store ordered (SIMD&FP)
xx01 1 1xx0xxxxxxxxx11 UNALLOCATED
xx01 0xxxxxxxxxxxxxx Load register (literal)
xx01 1xx0xxxxxxxxx01 Memory Copy and Memory Set
xx10 00xxxxxxxxxxxxx Load/store no-allocate pair (offset)
xx10 01xxxxxxxxxxxxx Load/store register pair (post-indexed)
xx10 10xxxxxxxxxxxxx Load/store register pair (offset)
xx10 11xxxxxxxxxxxxx Load/store register pair (pre-indexed)
xx11 0xx0xxxxxxxxx00 Load/store register (unscaled immediate)
xx11 0xx0xxxxxxxxx01 Load/store register (immediate post-indexed)
xx11 0xx0xxxxxxxxx10 Load/store register (unprivileged)
xx11 0xx0xxxxxxxxx11 Load/store register (immediate pre-indexed)
xx11 0xx1xxxxxxxxx00 Atomic memory operations
xx11 0xx1xxxxxxxxx10 Load/store register (register offset)
xx11 0xx1xxxxxxxxxx1 Load/store register (pac)
xx11 1xxxxxxxxxxxxxx Load/store register (unsigned immediate)

Compare and swap pair

The encodings in this section are decoded from Loads and Stores.

313029282726252423222120191817161514131211109876543210
0sz0010000L1Rso0Rt2RnRt
Decode fields Instruction Details Feature
szLo0Rt2
!= 11111UNALLOCATED-
00011111CASP, CASPA, CASPAL, CASPL32-bit CASPFEAT_LSE
00111111CASP, CASPA, CASPAL, CASPL32-bit CASPLFEAT_LSE
01011111CASP, CASPA, CASPAL, CASPL32-bit CASPAFEAT_LSE
01111111CASP, CASPA, CASPAL, CASPL32-bit CASPALFEAT_LSE
10011111CASP, CASPA, CASPAL, CASPL64-bit CASPFEAT_LSE
10111111CASP, CASPA, CASPAL, CASPL64-bit CASPLFEAT_LSE
11011111CASP, CASPA, CASPAL, CASPL64-bit CASPAFEAT_LSE
11111111CASP, CASPA, CASPAL, CASPL64-bit CASPALFEAT_LSE

Compare and swap pair (unprivileged)

The encodings in this section are decoded from Loads and Stores.

313029282726252423222120191817161514131211109876543210
0sz0010011L0Rso0Rt2RnRt
Decode fields Instruction Details Feature
szLo0Rt2
0UNALLOCATED-
1!= 11111UNALLOCATED-
10011111CASPT, CASPAT, CASPALT, CASPLTCASPTFEAT_LSUI
10111111CASPT, CASPAT, CASPALT, CASPLTCASPLTFEAT_LSUI
11011111CASPT, CASPAT, CASPALT, CASPLTCASPATFEAT_LSUI
11111111CASPT, CASPAT, CASPALT, CASPLTCASPALTFEAT_LSUI

Advanced SIMD load/store multiple structures

The encodings in this section are decoded from Loads and Stores.

313029282726252423222120191817161514131211109876543210
0Q0011000L000000opcodesizeRnRt
Decode fields Instruction Details Feature
Lopcode
x0x1UNALLOCATED-
0101UNALLOCATED-
11xxUNALLOCATED-
00000ST4 (multiple structures)FEAT_AdvSIMD
00010ST1 (multiple structures)Four registersFEAT_AdvSIMD
00100ST3 (multiple structures)FEAT_AdvSIMD
00110ST1 (multiple structures)Three registersFEAT_AdvSIMD
00111ST1 (multiple structures)One registerFEAT_AdvSIMD
01000ST2 (multiple structures)FEAT_AdvSIMD
01010ST1 (multiple structures)Two registersFEAT_AdvSIMD
10000LD4 (multiple structures)FEAT_AdvSIMD
10010LD1 (multiple structures)Four registersFEAT_AdvSIMD
10100LD3 (multiple structures)FEAT_AdvSIMD
10110LD1 (multiple structures)Three registersFEAT_AdvSIMD
10111LD1 (multiple structures)One registerFEAT_AdvSIMD
11000LD2 (multiple structures)FEAT_AdvSIMD
11010LD1 (multiple structures)Two registersFEAT_AdvSIMD

Advanced SIMD load/store multiple structures (post-indexed)

The encodings in this section are decoded from Loads and Stores.

313029282726252423222120191817161514131211109876543210
0Q0011001L0RmopcodesizeRnRt
Decode fields Instruction Details Feature
LRmopcode
x0x1UNALLOCATED-
0101UNALLOCATED-
11xxUNALLOCATED-
0111110000ST4 (multiple structures)Immediate offsetFEAT_AdvSIMD
0111110010ST1 (multiple structures)Four registers, immediate offsetFEAT_AdvSIMD
0111110100ST3 (multiple structures)Immediate offsetFEAT_AdvSIMD
0111110110ST1 (multiple structures)Three registers, immediate offsetFEAT_AdvSIMD
0111110111ST1 (multiple structures)One register, immediate offsetFEAT_AdvSIMD
0111111000ST2 (multiple structures)Immediate offsetFEAT_AdvSIMD
0111111010ST1 (multiple structures)Two registers, immediate offsetFEAT_AdvSIMD
0!= 111110000ST4 (multiple structures)Register offsetFEAT_AdvSIMD
0!= 111110010ST1 (multiple structures)Four registers, register offsetFEAT_AdvSIMD
0!= 111110100ST3 (multiple structures)Register offsetFEAT_AdvSIMD
0!= 111110110ST1 (multiple structures)Three registers, register offsetFEAT_AdvSIMD
0!= 111110111ST1 (multiple structures)One register, register offsetFEAT_AdvSIMD
0!= 111111000ST2 (multiple structures)Register offsetFEAT_AdvSIMD
0!= 111111010ST1 (multiple structures)Two registers, register offsetFEAT_AdvSIMD
1111110000LD4 (multiple structures)Immediate offsetFEAT_AdvSIMD
1111110010LD1 (multiple structures)Four registers, immediate offsetFEAT_AdvSIMD
1111110100LD3 (multiple structures)Immediate offsetFEAT_AdvSIMD
1111110110LD1 (multiple structures)Three registers, immediate offsetFEAT_AdvSIMD
1111110111LD1 (multiple structures)One register, immediate offsetFEAT_AdvSIMD
1111111000LD2 (multiple structures)Immediate offsetFEAT_AdvSIMD
1111111010LD1 (multiple structures)Two registers, immediate offsetFEAT_AdvSIMD
1!= 111110000LD4 (multiple structures)Register offsetFEAT_AdvSIMD
1!= 111110010LD1 (multiple structures)Four registers, register offsetFEAT_AdvSIMD
1!= 111110100LD3 (multiple structures)Register offsetFEAT_AdvSIMD
1!= 111110110LD1 (multiple structures)Three registers, register offsetFEAT_AdvSIMD
1!= 111110111LD1 (multiple structures)One register, register offsetFEAT_AdvSIMD
1!= 111111000LD2 (multiple structures)Register offsetFEAT_AdvSIMD
1!= 111111010LD1 (multiple structures)Two registers, register offsetFEAT_AdvSIMD

Advanced SIMD load/store single structure

The encodings in this section are decoded from Loads and Stores.

313029282726252423222120191817161514131211109876543210
0Q0011010LR0000o2opcodeSsizeRnRt
Decode fields Instruction Details Feature
LRo2opcodeSsize
001xx1UNALLOCATED-
010x1xUNALLOCATED-
010x101UNALLOCATED-
01100!= 01UNALLOCATED-
01100101UNALLOCATED-
01!= 100UNALLOCATED-
11UNALLOCATED-
0011xUNALLOCATED-
000000ST1 (single structure)8-bitFEAT_AdvSIMD
000001ST3 (single structure)8-bitFEAT_AdvSIMD
000010x0ST1 (single structure)16-bitFEAT_AdvSIMD
000011x0ST3 (single structure)16-bitFEAT_AdvSIMD
00010000ST1 (single structure)32-bitFEAT_AdvSIMD
000100001ST1 (single structure)64-bitFEAT_AdvSIMD
00010100ST3 (single structure)32-bitFEAT_AdvSIMD
000101001ST3 (single structure)64-bitFEAT_AdvSIMD
001100001STL1 (SIMD&FP)FEAT_AdvSIMD && FEAT_LRCPC3
010000ST2 (single structure)8-bitFEAT_AdvSIMD
010001ST4 (single structure)8-bitFEAT_AdvSIMD
010010x0ST2 (single structure)16-bitFEAT_AdvSIMD
010011x0ST4 (single structure)16-bitFEAT_AdvSIMD
01010000ST2 (single structure)32-bitFEAT_AdvSIMD
010100001ST2 (single structure)64-bitFEAT_AdvSIMD
01010100ST4 (single structure)32-bitFEAT_AdvSIMD
010101001ST4 (single structure)64-bitFEAT_AdvSIMD
1011x1UNALLOCATED-
100000LD1 (single structure)8-bitFEAT_AdvSIMD
100001LD3 (single structure)8-bitFEAT_AdvSIMD
100010x0LD1 (single structure)16-bitFEAT_AdvSIMD
100011x0LD3 (single structure)16-bitFEAT_AdvSIMD
10010000LD1 (single structure)32-bitFEAT_AdvSIMD
100100001LD1 (single structure)64-bitFEAT_AdvSIMD
10010100LD3 (single structure)32-bitFEAT_AdvSIMD
100101001LD3 (single structure)64-bitFEAT_AdvSIMD
1001100LD1RFEAT_AdvSIMD
1001110LD3RFEAT_AdvSIMD
101100001LDAP1 (SIMD&FP)FEAT_AdvSIMD && FEAT_LRCPC3
110000LD2 (single structure)8-bitFEAT_AdvSIMD
110001LD4 (single structure)8-bitFEAT_AdvSIMD
110010x0LD2 (single structure)16-bitFEAT_AdvSIMD
110011x0LD4 (single structure)16-bitFEAT_AdvSIMD
11010000LD2 (single structure)32-bitFEAT_AdvSIMD
110100001LD2 (single structure)64-bitFEAT_AdvSIMD
11010100LD4 (single structure)32-bitFEAT_AdvSIMD
110101001LD4 (single structure)64-bitFEAT_AdvSIMD
1101100LD2RFEAT_AdvSIMD
1101110LD4RFEAT_AdvSIMD

Advanced SIMD load/store single structure (post-indexed)

The encodings in this section are decoded from Loads and Stores.

313029282726252423222120191817161514131211109876543210
0Q0011011LRRmopcodeSsizeRnRt
Decode fields Instruction Details Feature
LRRmopcodeSsize
01xx1UNALLOCATED-
10x1xUNALLOCATED-
10x101UNALLOCATED-
011xUNALLOCATED-
0011111000ST1 (single structure)8-bit, immediate offsetFEAT_AdvSIMD
0011111001ST3 (single structure)8-bit, immediate offsetFEAT_AdvSIMD
0011111010x0ST1 (single structure)16-bit, immediate offsetFEAT_AdvSIMD
0011111011x0ST3 (single structure)16-bit, immediate offsetFEAT_AdvSIMD
001111110000ST1 (single structure)32-bit, immediate offsetFEAT_AdvSIMD
0011111100001ST1 (single structure)64-bit, immediate offsetFEAT_AdvSIMD
001111110100ST3 (single structure)32-bit, immediate offsetFEAT_AdvSIMD
0011111101001ST3 (single structure)64-bit, immediate offsetFEAT_AdvSIMD
00!= 11111000ST1 (single structure)8-bit, register offsetFEAT_AdvSIMD
00!= 11111001ST3 (single structure)8-bit, register offsetFEAT_AdvSIMD
00!= 11111010x0ST1 (single structure)16-bit, register offsetFEAT_AdvSIMD
00!= 11111011x0ST3 (single structure)16-bit, register offsetFEAT_AdvSIMD
00!= 1111110000ST1 (single structure)32-bit, register offsetFEAT_AdvSIMD
00!= 11111100001ST1 (single structure)64-bit, register offsetFEAT_AdvSIMD
00!= 1111110100ST3 (single structure)32-bit, register offsetFEAT_AdvSIMD
00!= 11111101001ST3 (single structure)64-bit, register offsetFEAT_AdvSIMD
0111111000ST2 (single structure)8-bit, immediate offsetFEAT_AdvSIMD
0111111001ST4 (single structure)8-bit, immediate offsetFEAT_AdvSIMD
0111111010x0ST2 (single structure)16-bit, immediate offsetFEAT_AdvSIMD
0111111011x0ST4 (single structure)16-bit, immediate offsetFEAT_AdvSIMD
011111110000ST2 (single structure)32-bit, immediate offsetFEAT_AdvSIMD
0111111100001ST2 (single structure)64-bit, immediate offsetFEAT_AdvSIMD
011111110100ST4 (single structure)32-bit, immediate offsetFEAT_AdvSIMD
0111111101001ST4 (single structure)64-bit, immediate offsetFEAT_AdvSIMD
01!= 11111000ST2 (single structure)8-bit, register offsetFEAT_AdvSIMD
01!= 11111001ST4 (single structure)8-bit, register offsetFEAT_AdvSIMD
01!= 11111010x0ST2 (single structure)16-bit, register offsetFEAT_AdvSIMD
01!= 11111011x0ST4 (single structure)16-bit, register offsetFEAT_AdvSIMD
01!= 1111110000ST2 (single structure)32-bit, register offsetFEAT_AdvSIMD
01!= 11111100001ST2 (single structure)64-bit, register offsetFEAT_AdvSIMD
01!= 1111110100ST4 (single structure)32-bit, register offsetFEAT_AdvSIMD
01!= 11111101001ST4 (single structure)64-bit, register offsetFEAT_AdvSIMD
111x1UNALLOCATED-
1011111000LD1 (single structure)8-bit, immediate offsetFEAT_AdvSIMD
1011111001LD3 (single structure)8-bit, immediate offsetFEAT_AdvSIMD
1011111010x0LD1 (single structure)16-bit, immediate offsetFEAT_AdvSIMD
1011111011x0LD3 (single structure)16-bit, immediate offsetFEAT_AdvSIMD
101111110000LD1 (single structure)32-bit, immediate offsetFEAT_AdvSIMD
1011111100001LD1 (single structure)64-bit, immediate offsetFEAT_AdvSIMD
101111110100LD3 (single structure)32-bit, immediate offsetFEAT_AdvSIMD
1011111101001LD3 (single structure)64-bit, immediate offsetFEAT_AdvSIMD
10111111100LD1RImmediate offsetFEAT_AdvSIMD
10111111110LD3RImmediate offsetFEAT_AdvSIMD
10!= 11111000LD1 (single structure)8-bit, register offsetFEAT_AdvSIMD
10!= 11111001LD3 (single structure)8-bit, register offsetFEAT_AdvSIMD
10!= 11111010x0LD1 (single structure)16-bit, register offsetFEAT_AdvSIMD
10!= 11111011x0LD3 (single structure)16-bit, register offsetFEAT_AdvSIMD
10!= 1111110000LD1 (single structure)32-bit, register offsetFEAT_AdvSIMD
10!= 11111100001LD1 (single structure)64-bit, register offsetFEAT_AdvSIMD
10!= 1111110100LD3 (single structure)32-bit, register offsetFEAT_AdvSIMD
10!= 11111101001LD3 (single structure)64-bit, register offsetFEAT_AdvSIMD
10!= 111111100LD1RRegister offsetFEAT_AdvSIMD
10!= 111111110LD3RRegister offsetFEAT_AdvSIMD
1111111000LD2 (single structure)8-bit, immediate offsetFEAT_AdvSIMD
1111111001LD4 (single structure)8-bit, immediate offsetFEAT_AdvSIMD
1111111010x0LD2 (single structure)16-bit, immediate offsetFEAT_AdvSIMD
1111111011x0LD4 (single structure)16-bit, immediate offsetFEAT_AdvSIMD
111111110000LD2 (single structure)32-bit, immediate offsetFEAT_AdvSIMD
1111111100001LD2 (single structure)64-bit, immediate offsetFEAT_AdvSIMD
111111110100LD4 (single structure)32-bit, immediate offsetFEAT_AdvSIMD
1111111101001LD4 (single structure)64-bit, immediate offsetFEAT_AdvSIMD
11111111100LD2RImmediate offsetFEAT_AdvSIMD
11111111110LD4RImmediate offsetFEAT_AdvSIMD
11!= 11111000LD2 (single structure)8-bit, register offsetFEAT_AdvSIMD
11!= 11111001LD4 (single structure)8-bit, register offsetFEAT_AdvSIMD
11!= 11111010x0LD2 (single structure)16-bit, register offsetFEAT_AdvSIMD
11!= 11111011x0LD4 (single structure)16-bit, register offsetFEAT_AdvSIMD
11!= 1111110000LD2 (single structure)32-bit, register offsetFEAT_AdvSIMD
11!= 11111100001LD2 (single structure)64-bit, register offsetFEAT_AdvSIMD
11!= 1111110100LD4 (single structure)32-bit, register offsetFEAT_AdvSIMD
11!= 11111101001LD4 (single structure)64-bit, register offsetFEAT_AdvSIMD
11!= 111111100LD2RRegister offsetFEAT_AdvSIMD
11!= 111111110LD4RRegister offsetFEAT_AdvSIMD

RCW compare and swap

The encodings in this section are decoded from Loads and Stores.

313029282726252423222120191817161514131211109876543210
0S011001AR1Rs000010RnRt
Decode fields Instruction Details Feature
SAR
000RCWCAS, RCWCASA, RCWCASAL, RCWCASLRCWCASFEAT_THE
001RCWCAS, RCWCASA, RCWCASAL, RCWCASLRCWCASLFEAT_THE
010RCWCAS, RCWCASA, RCWCASAL, RCWCASLRCWCASAFEAT_THE
011RCWCAS, RCWCASA, RCWCASAL, RCWCASLRCWCASALFEAT_THE
100RCWSCAS, RCWSCASA, RCWSCASAL, RCWSCASLRCWSCASFEAT_THE
101RCWSCAS, RCWSCASA, RCWSCASAL, RCWSCASLRCWSCASLFEAT_THE
110RCWSCAS, RCWSCASA, RCWSCASAL, RCWSCASLRCWSCASAFEAT_THE
111RCWSCAS, RCWSCASA, RCWSCASAL, RCWSCASLRCWSCASALFEAT_THE

RCW compare and swap pair

The encodings in this section are decoded from Loads and Stores.

313029282726252423222120191817161514131211109876543210
0S011001AR1Rs000011RnRt
Decode fields Instruction Details Feature
SAR
000RCWCASP, RCWCASPA, RCWCASPAL, RCWCASPLRCWCASPFEAT_D128 && FEAT_THE
001RCWCASP, RCWCASPA, RCWCASPAL, RCWCASPLRCWCASPLFEAT_D128 && FEAT_THE
010RCWCASP, RCWCASPA, RCWCASPAL, RCWCASPLRCWCASPAFEAT_D128 && FEAT_THE
011RCWCASP, RCWCASPA, RCWCASPAL, RCWCASPLRCWCASPALFEAT_D128 && FEAT_THE
100RCWSCASP, RCWSCASPA, RCWSCASPAL, RCWSCASPLRCWSCASPFEAT_D128 && FEAT_THE
101RCWSCASP, RCWSCASPA, RCWSCASPAL, RCWSCASPLRCWSCASPLFEAT_D128 && FEAT_THE
110RCWSCASP, RCWSCASPA, RCWSCASPAL, RCWSCASPLRCWSCASPAFEAT_D128 && FEAT_THE
111RCWSCASP, RCWSCASPA, RCWSCASPAL, RCWSCASPLRCWSCASPALFEAT_D128 && FEAT_THE

128-bit atomic memory operations

The encodings in this section are decoded from Loads and Stores.

313029282726252423222120191817161514131211109876543210
0S011001AR1Rt2o3opc00RnRt
Decode fields Instruction Details Feature
SARo3opc
1xxUNALLOCATED-
000x0UNALLOCATED-
0000001LDCLRP, LDCLRPA, LDCLRPAL, LDCLRPLLDCLRPFEAT_LSE128
0000011LDSETP, LDSETPA, LDSETPAL, LDSETPLLDSETPFEAT_LSE128
0001000SWPP, SWPPA, SWPPAL, SWPPLSWPPFEAT_LSE128
0001001RCWCLRP, RCWCLRPA, RCWCLRPAL, RCWCLRPLRCWCLRPFEAT_D128 && FEAT_THE
0001010RCWSWPP, RCWSWPPA, RCWSWPPAL, RCWSWPPLRCWSWPPFEAT_D128 && FEAT_THE
0001011RCWSETP, RCWSETPA, RCWSETPAL, RCWSETPLRCWSETPFEAT_D128 && FEAT_THE
0010001LDCLRP, LDCLRPA, LDCLRPAL, LDCLRPLLDCLRPLFEAT_LSE128
0010011LDSETP, LDSETPA, LDSETPAL, LDSETPLLDSETPLFEAT_LSE128
0011000SWPP, SWPPA, SWPPAL, SWPPLSWPPLFEAT_LSE128
0011001RCWCLRP, RCWCLRPA, RCWCLRPAL, RCWCLRPLRCWCLRPLFEAT_D128 && FEAT_THE
0011010RCWSWPP, RCWSWPPA, RCWSWPPAL, RCWSWPPLRCWSWPPLFEAT_D128 && FEAT_THE
0011011RCWSETP, RCWSETPA, RCWSETPAL, RCWSETPLRCWSETPLFEAT_D128 && FEAT_THE
0100001LDCLRP, LDCLRPA, LDCLRPAL, LDCLRPLLDCLRPAFEAT_LSE128
0100011LDSETP, LDSETPA, LDSETPAL, LDSETPLLDSETPAFEAT_LSE128
0101000SWPP, SWPPA, SWPPAL, SWPPLSWPPAFEAT_LSE128
0101001RCWCLRP, RCWCLRPA, RCWCLRPAL, RCWCLRPLRCWCLRPAFEAT_D128 && FEAT_THE
0101010RCWSWPP, RCWSWPPA, RCWSWPPAL, RCWSWPPLRCWSWPPAFEAT_D128 && FEAT_THE
0101011RCWSETP, RCWSETPA, RCWSETPAL, RCWSETPLRCWSETPAFEAT_D128 && FEAT_THE
0110001LDCLRP, LDCLRPA, LDCLRPAL, LDCLRPLLDCLRPALFEAT_LSE128
0110011LDSETP, LDSETPA, LDSETPAL, LDSETPLLDSETPALFEAT_LSE128
0111000SWPP, SWPPA, SWPPAL, SWPPLSWPPALFEAT_LSE128
0111001RCWCLRP, RCWCLRPA, RCWCLRPAL, RCWCLRPLRCWCLRPALFEAT_D128 && FEAT_THE
0111010RCWSWPP, RCWSWPPA, RCWSWPPAL, RCWSWPPLRCWSWPPALFEAT_D128 && FEAT_THE
0111011RCWSETP, RCWSETPA, RCWSETPAL, RCWSETPLRCWSETPALFEAT_D128 && FEAT_THE
100xxUNALLOCATED-
11000UNALLOCATED-
1001001RCWSCLRP, RCWSCLRPA, RCWSCLRPAL, RCWSCLRPLRCWSCLRPFEAT_D128 && FEAT_THE
1001010RCWSSWPP, RCWSSWPPA, RCWSSWPPAL, RCWSSWPPLRCWSSWPPFEAT_D128 && FEAT_THE
1001011RCWSSETP, RCWSSETPA, RCWSSETPAL, RCWSSETPLRCWSSETPFEAT_D128 && FEAT_THE
1011001RCWSCLRP, RCWSCLRPA, RCWSCLRPAL, RCWSCLRPLRCWSCLRPLFEAT_D128 && FEAT_THE
1011010RCWSSWPP, RCWSSWPPA, RCWSSWPPAL, RCWSSWPPLRCWSSWPPLFEAT_D128 && FEAT_THE
1011011RCWSSETP, RCWSSETPA, RCWSSETPAL, RCWSSETPLRCWSSETPLFEAT_D128 && FEAT_THE
1101001RCWSCLRP, RCWSCLRPA, RCWSCLRPAL, RCWSCLRPLRCWSCLRPAFEAT_D128 && FEAT_THE
1101010RCWSSWPP, RCWSSWPPA, RCWSSWPPAL, RCWSSWPPLRCWSSWPPAFEAT_D128 && FEAT_THE
1101011RCWSSETP, RCWSSETPA, RCWSSETPAL, RCWSSETPLRCWSSETPAFEAT_D128 && FEAT_THE
1111001RCWSCLRP, RCWSCLRPA, RCWSCLRPAL, RCWSCLRPLRCWSCLRPALFEAT_D128 && FEAT_THE
1111010RCWSSWPP, RCWSSWPPA, RCWSSWPPAL, RCWSSWPPLRCWSSWPPALFEAT_D128 && FEAT_THE
1111011RCWSSETP, RCWSSETPA, RCWSSETPAL, RCWSSETPLRCWSSETPALFEAT_D128 && FEAT_THE

Atomic memory operations (unprivileged)

The encodings in this section are decoded from Loads and Stores.

313029282726252423222120191817161514131211109876543210
0sz011001AR1Rso3opc01RnRt
Decode fields Instruction Details Feature
szARo3opc
010UNALLOCATED-
1xxUNALLOCATED-
10x1UNALLOCATED-
0000000LDTADD, LDTADDA, LDTADDAL, LDTADDL32-bit no memory orderingFEAT_LSUI
0000001LDTCLR, LDTCLRA, LDTCLRAL, LDTCLRL32-bit no memory orderingFEAT_LSUI
0000011LDTSET, LDTSETA, LDTSETAL, LDTSETL32-bit no memory orderingFEAT_LSUI
0001000SWPT, SWPTA, SWPTAL, SWPTL32-bit SWPTFEAT_LSUI
0010000LDTADD, LDTADDA, LDTADDAL, LDTADDL32-bit releaseFEAT_LSUI
0010001LDTCLR, LDTCLRA, LDTCLRAL, LDTCLRL32-bit releaseFEAT_LSUI
0010011LDTSET, LDTSETA, LDTSETAL, LDTSETL32-bit releaseFEAT_LSUI
0011000SWPT, SWPTA, SWPTAL, SWPTL32-bit SWPTLFEAT_LSUI
0100000LDTADD, LDTADDA, LDTADDAL, LDTADDL32-bit acquireFEAT_LSUI
0100001LDTCLR, LDTCLRA, LDTCLRAL, LDTCLRL32-bit acquireFEAT_LSUI
0100011LDTSET, LDTSETA, LDTSETAL, LDTSETL32-bit acquireFEAT_LSUI
0101000SWPT, SWPTA, SWPTAL, SWPTL32-bit SWPTAFEAT_LSUI
0110000LDTADD, LDTADDA, LDTADDAL, LDTADDL32-bit acquire-releaseFEAT_LSUI
0110001LDTCLR, LDTCLRA, LDTCLRAL, LDTCLRL32-bit acquire-releaseFEAT_LSUI
0110011LDTSET, LDTSETA, LDTSETAL, LDTSETL32-bit acquire-releaseFEAT_LSUI
0111000SWPT, SWPTA, SWPTAL, SWPTL32-bit SWPTALFEAT_LSUI
1000000LDTADD, LDTADDA, LDTADDAL, LDTADDL64-bit no memory orderingFEAT_LSUI
1000001LDTCLR, LDTCLRA, LDTCLRAL, LDTCLRL64-bit no memory orderingFEAT_LSUI
1000011LDTSET, LDTSETA, LDTSETAL, LDTSETL64-bit no memory orderingFEAT_LSUI
1001000SWPT, SWPTA, SWPTAL, SWPTL64-bit SWPTFEAT_LSUI
1010000LDTADD, LDTADDA, LDTADDAL, LDTADDL64-bit releaseFEAT_LSUI
1010001LDTCLR, LDTCLRA, LDTCLRAL, LDTCLRL64-bit releaseFEAT_LSUI
1010011LDTSET, LDTSETA, LDTSETAL, LDTSETL64-bit releaseFEAT_LSUI
1011000SWPT, SWPTA, SWPTAL, SWPTL64-bit SWPTLFEAT_LSUI
1100000LDTADD, LDTADDA, LDTADDAL, LDTADDL64-bit acquireFEAT_LSUI
1100001LDTCLR, LDTCLRA, LDTCLRAL, LDTCLRL64-bit acquireFEAT_LSUI
1100011LDTSET, LDTSETA, LDTSETAL, LDTSETL64-bit acquireFEAT_LSUI
1101000SWPT, SWPTA, SWPTAL, SWPTL64-bit SWPTAFEAT_LSUI
1110000LDTADD, LDTADDA, LDTADDAL, LDTADDL64-bit acquire-releaseFEAT_LSUI
1110001LDTCLR, LDTCLRA, LDTCLRAL, LDTCLRL64-bit acquire-releaseFEAT_LSUI
1110011LDTSET, LDTSETA, LDTSETAL, LDTSETL64-bit acquire-releaseFEAT_LSUI
1111000SWPT, SWPTA, SWPTAL, SWPTL64-bit SWPTALFEAT_LSUI

GCS load/store

The encodings in this section are decoded from Loads and Stores.

313029282726252423222120191817161514131211109876543210
11011001000111110opc11RnRt
Decode fields Instruction Details Feature
opc
000GCSSTRFEAT_GCS
001GCSSTTRFEAT_GCS
1xxUNALLOCATED-
!= 00x01xUNALLOCATED-

Load/store memory tags

The encodings in this section are decoded from Loads and Stores.

313029282726252423222120191817161514131211109876543210
11011001opc1imm9op2RnRt
Decode fields Instruction Details Feature
opcimm9op2
0001STGPost-indexFEAT_MTE
0010STGSigned offsetFEAT_MTE
0011STGPre-indexFEAT_MTE
0000000000000STZGMFEAT_MTE2
0100LDGFEAT_MTE
0101STZGPost-indexFEAT_MTE
0110STZGSigned offsetFEAT_MTE
0111STZGPre-indexFEAT_MTE
1001ST2GPost-indexFEAT_MTE
1010ST2GSigned offsetFEAT_MTE
1011ST2GPre-indexFEAT_MTE
1000000000000STGMFEAT_MTE2
1101STZ2GPost-indexFEAT_MTE
1110STZ2GSigned offsetFEAT_MTE
1111STZ2GPre-indexFEAT_MTE
1100000000000LDGMFEAT_MTE2
!= 01!= 00000000000UNALLOCATED-

Load/store exclusive pair

The encodings in this section are decoded from Loads and Stores.

313029282726252423222120191817161514131211109876543210
1sz0010000L1Rso0Rt2RnRt
Decode fields Instruction Details
szLo0
000STXP32-bit
001STLXP32-bit
010LDXP32-bit
011LDAXP32-bit
100STXP64-bit
101STLXP64-bit
110LDXP64-bit
111LDAXP64-bit

Load/store exclusive register (unprivileged)

The encodings in this section are decoded from Loads and Stores.

313029282726252423222120191817161514131211109876543210
1sz0010010L0Rso0Rt2RnRt
Decode fields Instruction Details Feature
szLo0
000STTXR32-bitFEAT_LSUI
001STLTXR32-bitFEAT_LSUI
010LDTXR32-bitFEAT_LSUI
011LDATXR32-bitFEAT_LSUI
100STTXR64-bitFEAT_LSUI
101STLTXR64-bitFEAT_LSUI
110LDTXR64-bitFEAT_LSUI
111LDATXR64-bitFEAT_LSUI

Compare and swap (unprivileged)

The encodings in this section are decoded from Loads and Stores.

313029282726252423222120191817161514131211109876543210
1sz0010011L0Rso0Rt2RnRt
Decode fields Instruction Details Feature
szLo0Rt2
0UNALLOCATED-
1!= 11111UNALLOCATED-
10011111CAST, CASAT, CASALT, CASLTCASTFEAT_LSUI
10111111CAST, CASAT, CASALT, CASLTCASLTFEAT_LSUI
11011111CAST, CASAT, CASALT, CASLTCASATFEAT_LSUI
11111111CAST, CASAT, CASALT, CASLTCASALTFEAT_LSUI

Load/store exclusive register

The encodings in this section are decoded from Loads and Stores.

313029282726252423222120191817161514131211109876543210
size0010000L0Rso0Rt2RnRt
Decode fields Instruction Details
sizeLo0
0000STXRB
0001STLXRB
0010LDXRB
0011LDAXRB
0100STXRH
0101STLXRH
0110LDXRH
0111LDAXRH
1000STXR32-bit
1001STLXR32-bit
1010LDXR32-bit
1011LDAXR32-bit
1100STXR64-bit
1101STLXR64-bit
1110LDXR64-bit
1111LDAXR64-bit

Load/store ordered

The encodings in this section are decoded from Loads and Stores.

313029282726252423222120191817161514131211109876543210
size0010001L0Rso0Rt2RnRt
Decode fields Instruction Details Feature
sizeLo0
0000STLLRBFEAT_LOR
0001STLRB-
0010LDLARBFEAT_LOR
0011LDARB-
0100STLLRHFEAT_LOR
0101STLRH-
0110LDLARHFEAT_LOR
0111LDARH-
1000STLLR32-bitFEAT_LOR
1001STLR32-bit-
1010LDLAR32-bitFEAT_LOR
1011LDAR32-bit-
1100STLLR64-bitFEAT_LOR
1101STLR64-bit-
1110LDLAR64-bitFEAT_LOR
1111LDAR64-bit-

Compare and swap

The encodings in this section are decoded from Loads and Stores.

313029282726252423222120191817161514131211109876543210
size0010001L1Rso0Rt2RnRt
Decode fields Instruction Details Feature
sizeLo0Rt2
!= 11111UNALLOCATED-
000011111CASB, CASAB, CASALB, CASLBCASBFEAT_LSE
000111111CASB, CASAB, CASALB, CASLBCASLBFEAT_LSE
001011111CASB, CASAB, CASALB, CASLBCASABFEAT_LSE
001111111CASB, CASAB, CASALB, CASLBCASALBFEAT_LSE
010011111CASH, CASAH, CASALH, CASLHCASHFEAT_LSE
010111111CASH, CASAH, CASALH, CASLHCASLHFEAT_LSE
011011111CASH, CASAH, CASALH, CASLHCASAHFEAT_LSE
011111111CASH, CASAH, CASALH, CASLHCASALHFEAT_LSE
100011111CAS, CASA, CASAL, CASL32-bit CASFEAT_LSE
100111111CAS, CASA, CASAL, CASL32-bit CASLFEAT_LSE
101011111CAS, CASA, CASAL, CASL32-bit CASAFEAT_LSE
101111111CAS, CASA, CASAL, CASL32-bit CASALFEAT_LSE
110011111CAS, CASA, CASAL, CASL64-bit CASFEAT_LSE
110111111CAS, CASA, CASAL, CASL64-bit CASLFEAT_LSE
111011111CAS, CASA, CASAL, CASL64-bit CASAFEAT_LSE
111111111CAS, CASA, CASAL, CASL64-bit CASALFEAT_LSE

Load/store ordered register pair

The encodings in this section are decoded from Loads and Stores.

313029282726252423222120191817161514131211109876543210
size0110010L0Rt2opc210RnRt
Decode fields Instruction Details Feature
sizeLopc2
0xUNALLOCATED-
1x1xxxUNALLOCATED-
1x0001xUNALLOCATED-
1x1001xUNALLOCATED-
1001xxUNALLOCATED-
1000000STILP32-bit pre-indexFEAT_LRCPC3
1000001STILP32-bitFEAT_LRCPC3
1010000LDIAPP32-bit post-indexFEAT_LRCPC3
1010001LDIAPP32-bitFEAT_LRCPC3
110100UNALLOCATED-
1100000STILP64-bit pre-indexFEAT_LRCPC3
1100001STILP64-bitFEAT_LRCPC3
1100101STLPFEAT_LSCP
110011xUNALLOCATED-
1110000LDIAPP64-bit post-indexFEAT_LRCPC3
1110001LDIAPP64-bitFEAT_LRCPC3
1110101LDAPFEAT_LSCP
1110110UNALLOCATED-
1110111LDAPPFEAT_LSCP

Load/store ordered (writeback)

The encodings in this section are decoded from Loads and Stores.

313029282726252423222120191817161514131211109876543210
size0110011L000000000010RnRt
Decode fields Instruction Details Feature
sizeL
0xUNALLOCATED-
100STLR32-bitFEAT_LRCPC3
101LDAPR32-bitFEAT_LRCPC3
110STLR64-bitFEAT_LRCPC3
111LDAPR64-bitFEAT_LRCPC3

Load/store ordered (unscaled immediate)

The encodings in this section are decoded from Loads and Stores.

313029282726252423222120191817161514131211109876543210
size011001opc0imm900RnRt
Decode fields Instruction Details Feature
sizeopc
0000STLURBFEAT_LRCPC2
0001LDAPURBFEAT_LRCPC2
0010LDAPURSB64-bitFEAT_LRCPC2
0011LDAPURSB32-bitFEAT_LRCPC2
0100STLURHFEAT_LRCPC2
0101LDAPURHFEAT_LRCPC2
0110LDAPURSH64-bitFEAT_LRCPC2
0111LDAPURSH32-bitFEAT_LRCPC2
1000STLUR32-bitFEAT_LRCPC2
1001LDAPUR32-bitFEAT_LRCPC2
1010LDAPURSWFEAT_LRCPC2
1011UNALLOCATED-
1100STLUR64-bitFEAT_LRCPC2
1101LDAPUR64-bitFEAT_LRCPC2
111xUNALLOCATED-

Load/store ordered (SIMD&FP)

The encodings in this section are decoded from Loads and Stores.

313029282726252423222120191817161514131211109876543210
size011101opc0imm910RnRt
Decode fields Instruction Details Feature
sizeopc
0000STLUR (SIMD&FP)8-bitFEAT_FP && FEAT_LRCPC3
0001LDAPUR (SIMD&FP)8-bitFEAT_FP && FEAT_LRCPC3
0010STLUR (SIMD&FP)128-bitFEAT_FP && FEAT_LRCPC3
0011LDAPUR (SIMD&FP)128-bitFEAT_FP && FEAT_LRCPC3
0100STLUR (SIMD&FP)16-bitFEAT_FP && FEAT_LRCPC3
0101LDAPUR (SIMD&FP)16-bitFEAT_FP && FEAT_LRCPC3
1000STLUR (SIMD&FP)32-bitFEAT_FP && FEAT_LRCPC3
1001LDAPUR (SIMD&FP)32-bitFEAT_FP && FEAT_LRCPC3
1100STLUR (SIMD&FP)64-bitFEAT_FP && FEAT_LRCPC3
1101LDAPUR (SIMD&FP)64-bitFEAT_FP && FEAT_LRCPC3
!= 001xUNALLOCATED-

Load register (literal)

The encodings in this section are decoded from Loads and Stores.

313029282726252423222120191817161514131211109876543210
opc011VR00imm19Rt
Decode fields Instruction Details Feature
opcVR
000LDR (literal)32-bit-
001LDR (literal, SIMD&FP)32-bitFEAT_FP
010LDR (literal)64-bit-
011LDR (literal, SIMD&FP)64-bitFEAT_FP
100LDRSW (literal)-
101LDR (literal, SIMD&FP)128-bitFEAT_FP
110PRFM (literal)-
111UNALLOCATED-

Memory Copy and Memory Set

The encodings in this section are decoded from Loads and Stores.

313029282726252423222120191817161514131211109876543210
size011o001op10Rsop201RnRd
Decode fields Instruction Details Feature
o0op1op2
1111xxUNALLOCATED-
0000000CPYFP, CPYFM, CPYFEPrologueFEAT_MOPS
0000001CPYFPWT, CPYFMWT, CPYFEWTPrologueFEAT_MOPS
0000010CPYFPRT, CPYFMRT, CPYFERTPrologueFEAT_MOPS
0000011CPYFPT, CPYFMT, CPYFETPrologueFEAT_MOPS
0000100CPYFPWN, CPYFMWN, CPYFEWNPrologueFEAT_MOPS
0000101CPYFPWTWN, CPYFMWTWN, CPYFEWTWNPrologueFEAT_MOPS
0000110CPYFPRTWN, CPYFMRTWN, CPYFERTWNPrologueFEAT_MOPS
0000111CPYFPTWN, CPYFMTWN, CPYFETWNPrologueFEAT_MOPS
0001000CPYFPRN, CPYFMRN, CPYFERNPrologueFEAT_MOPS
0001001CPYFPWTRN, CPYFMWTRN, CPYFEWTRNPrologueFEAT_MOPS
0001010CPYFPRTRN, CPYFMRTRN, CPYFERTRNPrologueFEAT_MOPS
0001011CPYFPTRN, CPYFMTRN, CPYFETRNPrologueFEAT_MOPS
0001100CPYFPN, CPYFMN, CPYFENPrologueFEAT_MOPS
0001101CPYFPWTN, CPYFMWTN, CPYFEWTNPrologueFEAT_MOPS
0001110CPYFPRTN, CPYFMRTN, CPYFERTNPrologueFEAT_MOPS
0001111CPYFPTN, CPYFMTN, CPYFETNPrologueFEAT_MOPS
0010000CPYFP, CPYFM, CPYFEMainFEAT_MOPS
0010001CPYFPWT, CPYFMWT, CPYFEWTMainFEAT_MOPS
0010010CPYFPRT, CPYFMRT, CPYFERTMainFEAT_MOPS
0010011CPYFPT, CPYFMT, CPYFETMainFEAT_MOPS
0010100CPYFPWN, CPYFMWN, CPYFEWNMainFEAT_MOPS
0010101CPYFPWTWN, CPYFMWTWN, CPYFEWTWNMainFEAT_MOPS
0010110CPYFPRTWN, CPYFMRTWN, CPYFERTWNMainFEAT_MOPS
0010111CPYFPTWN, CPYFMTWN, CPYFETWNMainFEAT_MOPS
0011000CPYFPRN, CPYFMRN, CPYFERNMainFEAT_MOPS
0011001CPYFPWTRN, CPYFMWTRN, CPYFEWTRNMainFEAT_MOPS
0011010CPYFPRTRN, CPYFMRTRN, CPYFERTRNMainFEAT_MOPS
0011011CPYFPTRN, CPYFMTRN, CPYFETRNMainFEAT_MOPS
0011100CPYFPN, CPYFMN, CPYFENMainFEAT_MOPS
0011101CPYFPWTN, CPYFMWTN, CPYFEWTNMainFEAT_MOPS
0011110CPYFPRTN, CPYFMRTN, CPYFERTNMainFEAT_MOPS
0011111CPYFPTN, CPYFMTN, CPYFETNMainFEAT_MOPS
0100000CPYFP, CPYFM, CPYFEEpilogueFEAT_MOPS
0100001CPYFPWT, CPYFMWT, CPYFEWTEpilogueFEAT_MOPS
0100010CPYFPRT, CPYFMRT, CPYFERTEpilogueFEAT_MOPS
0100011CPYFPT, CPYFMT, CPYFETEpilogueFEAT_MOPS
0100100CPYFPWN, CPYFMWN, CPYFEWNEpilogueFEAT_MOPS
0100101CPYFPWTWN, CPYFMWTWN, CPYFEWTWNEpilogueFEAT_MOPS
0100110CPYFPRTWN, CPYFMRTWN, CPYFERTWNEpilogueFEAT_MOPS
0100111CPYFPTWN, CPYFMTWN, CPYFETWNEpilogueFEAT_MOPS
0101000CPYFPRN, CPYFMRN, CPYFERNEpilogueFEAT_MOPS
0101001CPYFPWTRN, CPYFMWTRN, CPYFEWTRNEpilogueFEAT_MOPS
0101010CPYFPRTRN, CPYFMRTRN, CPYFERTRNEpilogueFEAT_MOPS
0101011CPYFPTRN, CPYFMTRN, CPYFETRNEpilogueFEAT_MOPS
0101100CPYFPN, CPYFMN, CPYFENEpilogueFEAT_MOPS
0101101CPYFPWTN, CPYFMWTN, CPYFEWTNEpilogueFEAT_MOPS
0101110CPYFPRTN, CPYFMRTN, CPYFERTNEpilogueFEAT_MOPS
0101111CPYFPTN, CPYFMTN, CPYFETNEpilogueFEAT_MOPS
0110000SETP, SETM, SETEPrologueFEAT_MOPS
0110001SETPT, SETMT, SETETPrologueFEAT_MOPS
0110010SETPN, SETMN, SETENPrologueFEAT_MOPS
0110011SETPTN, SETMTN, SETETNPrologueFEAT_MOPS
0110100SETP, SETM, SETEMainFEAT_MOPS
0110101SETPT, SETMT, SETETMainFEAT_MOPS
0110110SETPN, SETMN, SETENMainFEAT_MOPS
0110111SETPTN, SETMTN, SETETNMainFEAT_MOPS
0111000SETP, SETM, SETEEpilogueFEAT_MOPS
0111001SETPT, SETMT, SETETEpilogueFEAT_MOPS
0111010SETPN, SETMN, SETENEpilogueFEAT_MOPS
0111011SETPTN, SETMTN, SETETNEpilogueFEAT_MOPS
1000000CPYP, CPYM, CPYEPrologueFEAT_MOPS
1000001CPYPWT, CPYMWT, CPYEWTPrologueFEAT_MOPS
1000010CPYPRT, CPYMRT, CPYERTPrologueFEAT_MOPS
1000011CPYPT, CPYMT, CPYETPrologueFEAT_MOPS
1000100CPYPWN, CPYMWN, CPYEWNPrologueFEAT_MOPS
1000101CPYPWTWN, CPYMWTWN, CPYEWTWNPrologueFEAT_MOPS
1000110CPYPRTWN, CPYMRTWN, CPYERTWNPrologueFEAT_MOPS
1000111CPYPTWN, CPYMTWN, CPYETWNPrologueFEAT_MOPS
1001000CPYPRN, CPYMRN, CPYERNPrologueFEAT_MOPS
1001001CPYPWTRN, CPYMWTRN, CPYEWTRNPrologueFEAT_MOPS
1001010CPYPRTRN, CPYMRTRN, CPYERTRNPrologueFEAT_MOPS
1001011CPYPTRN, CPYMTRN, CPYETRNPrologueFEAT_MOPS
1001100CPYPN, CPYMN, CPYENPrologueFEAT_MOPS
1001101CPYPWTN, CPYMWTN, CPYEWTNPrologueFEAT_MOPS
1001110CPYPRTN, CPYMRTN, CPYERTNPrologueFEAT_MOPS
1001111CPYPTN, CPYMTN, CPYETNPrologueFEAT_MOPS
1010000CPYP, CPYM, CPYEMainFEAT_MOPS
1010001CPYPWT, CPYMWT, CPYEWTMainFEAT_MOPS
1010010CPYPRT, CPYMRT, CPYERTMainFEAT_MOPS
1010011CPYPT, CPYMT, CPYETMainFEAT_MOPS
1010100CPYPWN, CPYMWN, CPYEWNMainFEAT_MOPS
1010101CPYPWTWN, CPYMWTWN, CPYEWTWNMainFEAT_MOPS
1010110CPYPRTWN, CPYMRTWN, CPYERTWNMainFEAT_MOPS
1010111CPYPTWN, CPYMTWN, CPYETWNMainFEAT_MOPS
1011000CPYPRN, CPYMRN, CPYERNMainFEAT_MOPS
1011001CPYPWTRN, CPYMWTRN, CPYEWTRNMainFEAT_MOPS
1011010CPYPRTRN, CPYMRTRN, CPYERTRNMainFEAT_MOPS
1011011CPYPTRN, CPYMTRN, CPYETRNMainFEAT_MOPS
1011100CPYPN, CPYMN, CPYENMainFEAT_MOPS
1011101CPYPWTN, CPYMWTN, CPYEWTNMainFEAT_MOPS
1011110CPYPRTN, CPYMRTN, CPYERTNMainFEAT_MOPS
1011111CPYPTN, CPYMTN, CPYETNMainFEAT_MOPS
1100000CPYP, CPYM, CPYEEpilogueFEAT_MOPS
1100001CPYPWT, CPYMWT, CPYEWTEpilogueFEAT_MOPS
1100010CPYPRT, CPYMRT, CPYERTEpilogueFEAT_MOPS
1100011CPYPT, CPYMT, CPYETEpilogueFEAT_MOPS
1100100CPYPWN, CPYMWN, CPYEWNEpilogueFEAT_MOPS
1100101CPYPWTWN, CPYMWTWN, CPYEWTWNEpilogueFEAT_MOPS
1100110CPYPRTWN, CPYMRTWN, CPYERTWNEpilogueFEAT_MOPS
1100111CPYPTWN, CPYMTWN, CPYETWNEpilogueFEAT_MOPS
1101000CPYPRN, CPYMRN, CPYERNEpilogueFEAT_MOPS
1101001CPYPWTRN, CPYMWTRN, CPYEWTRNEpilogueFEAT_MOPS
1101010CPYPRTRN, CPYMRTRN, CPYERTRNEpilogueFEAT_MOPS
1101011CPYPTRN, CPYMTRN, CPYETRNEpilogueFEAT_MOPS
1101100CPYPN, CPYMN, CPYENEpilogueFEAT_MOPS
1101101CPYPWTN, CPYMWTN, CPYEWTNEpilogueFEAT_MOPS
1101110CPYPRTN, CPYMRTN, CPYERTNEpilogueFEAT_MOPS
1101111CPYPTN, CPYMTN, CPYETNEpilogueFEAT_MOPS
1110000SETGP, SETGM, SETGEPrologueFEAT_MOPS && FEAT_MTE
1110001SETGPT, SETGMT, SETGETPrologueFEAT_MOPS && FEAT_MTE
1110010SETGPN, SETGMN, SETGENPrologueFEAT_MOPS && FEAT_MTE
1110011SETGPTN, SETGMTN, SETGETNPrologueFEAT_MOPS && FEAT_MTE
1110100SETGP, SETGM, SETGEMainFEAT_MOPS && FEAT_MTE
1110101SETGPT, SETGMT, SETGETMainFEAT_MOPS && FEAT_MTE
1110110SETGPN, SETGMN, SETGENMainFEAT_MOPS && FEAT_MTE
1110111SETGPTN, SETGMTN, SETGETNMainFEAT_MOPS && FEAT_MTE
1111000SETGP, SETGM, SETGEEpilogueFEAT_MOPS && FEAT_MTE
1111001SETGPT, SETGMT, SETGETEpilogueFEAT_MOPS && FEAT_MTE
1111010SETGPN, SETGMN, SETGENEpilogueFEAT_MOPS && FEAT_MTE
1111011SETGPTN, SETGMTN, SETGETNEpilogueFEAT_MOPS && FEAT_MTE

Load/store no-allocate pair (offset)

The encodings in this section are decoded from Loads and Stores.

313029282726252423222120191817161514131211109876543210
opc101VR000Limm7Rt2RnRt
Decode fields Instruction Details Feature
opcVRL
0000STNP32-bit-
0001LDNP32-bit-
0010STNP (SIMD&FP)32-bitFEAT_FP
0011LDNP (SIMD&FP)32-bitFEAT_FP
010UNALLOCATED-
0110STNP (SIMD&FP)64-bitFEAT_FP
0111LDNP (SIMD&FP)64-bitFEAT_FP
1000STNP64-bit-
1001LDNP64-bit-
1010STNP (SIMD&FP)128-bitFEAT_FP
1011LDNP (SIMD&FP)128-bitFEAT_FP
1100STTNPFEAT_LSUI
1101LDTNPFEAT_LSUI
1110STTNP (SIMD&FP)FEAT_FP && FEAT_LSUI
1111LDTNP (SIMD&FP)FEAT_FP && FEAT_LSUI

Load/store register pair (post-indexed)

The encodings in this section are decoded from Loads and Stores.

313029282726252423222120191817161514131211109876543210
opc101VR001Limm7Rt2RnRt
Decode fields Instruction Details Feature
opcVRL
0000STP32-bit-
0001LDP32-bit-
0010STP (SIMD&FP)32-bitFEAT_FP
0011LDP (SIMD&FP)32-bitFEAT_FP
0100STGPFEAT_MTE
0101LDPSW-
0110STP (SIMD&FP)64-bitFEAT_FP
0111LDP (SIMD&FP)64-bitFEAT_FP
1000STP64-bit-
1001LDP64-bit-
1010STP (SIMD&FP)128-bitFEAT_FP
1011LDP (SIMD&FP)128-bitFEAT_FP
1100STTPFEAT_LSUI
1101LDTPFEAT_LSUI
1110STTP (SIMD&FP)FEAT_FP && FEAT_LSUI
1111LDTP (SIMD&FP)FEAT_FP && FEAT_LSUI

Load/store register pair (offset)

The encodings in this section are decoded from Loads and Stores.

313029282726252423222120191817161514131211109876543210
opc101VR010Limm7Rt2RnRt
Decode fields Instruction Details Feature
opcVRL
0000STP32-bit-
0001LDP32-bit-
0010STP (SIMD&FP)32-bitFEAT_FP
0011LDP (SIMD&FP)32-bitFEAT_FP
0100STGPFEAT_MTE
0101LDPSW-
0110STP (SIMD&FP)64-bitFEAT_FP
0111LDP (SIMD&FP)64-bitFEAT_FP
1000STP64-bit-
1001LDP64-bit-
1010STP (SIMD&FP)128-bitFEAT_FP
1011LDP (SIMD&FP)128-bitFEAT_FP
1100STTPFEAT_LSUI
1101LDTPFEAT_LSUI
1110STTP (SIMD&FP)FEAT_FP && FEAT_LSUI
1111LDTP (SIMD&FP)FEAT_FP && FEAT_LSUI

Load/store register pair (pre-indexed)

The encodings in this section are decoded from Loads and Stores.

313029282726252423222120191817161514131211109876543210
opc101VR011Limm7Rt2RnRt
Decode fields Instruction Details Feature
opcVRL
0000STP32-bit-
0001LDP32-bit-
0010STP (SIMD&FP)32-bitFEAT_FP
0011LDP (SIMD&FP)32-bitFEAT_FP
0100STGPFEAT_MTE
0101LDPSW-
0110STP (SIMD&FP)64-bitFEAT_FP
0111LDP (SIMD&FP)64-bitFEAT_FP
1000STP64-bit-
1001LDP64-bit-
1010STP (SIMD&FP)128-bitFEAT_FP
1011LDP (SIMD&FP)128-bitFEAT_FP
1100STTPFEAT_LSUI
1101LDTPFEAT_LSUI
1110STTP (SIMD&FP)FEAT_FP && FEAT_LSUI
1111LDTP (SIMD&FP)FEAT_FP && FEAT_LSUI

Load/store register (unscaled immediate)

The encodings in this section are decoded from Loads and Stores.

313029282726252423222120191817161514131211109876543210
size111VR00opc0imm900RnRt
Decode fields Instruction Details Feature
sizeVRopc
00000STURB-
00001LDURB-
00010LDURSB64-bit-
00011LDURSB32-bit-
00100STUR (SIMD&FP)8-bitFEAT_FP
00101LDUR (SIMD&FP)8-bitFEAT_FP
00110STUR (SIMD&FP)128-bitFEAT_FP
00111LDUR (SIMD&FP)128-bitFEAT_FP
01000STURH-
01001LDURH-
01010LDURSH64-bit-
01011LDURSH32-bit-
01100STUR (SIMD&FP)16-bitFEAT_FP
01101LDUR (SIMD&FP)16-bitFEAT_FP
1x011UNALLOCATED-
10000STUR32-bit-
10001LDUR32-bit-
10010LDURSW-
10100STUR (SIMD&FP)32-bitFEAT_FP
10101LDUR (SIMD&FP)32-bitFEAT_FP
11000STUR64-bit-
11001LDUR64-bit-
11010PRFUM-
11100STUR (SIMD&FP)64-bitFEAT_FP
11101LDUR (SIMD&FP)64-bitFEAT_FP
!= 0011xUNALLOCATED-

Load/store register (immediate post-indexed)

The encodings in this section are decoded from Loads and Stores.

313029282726252423222120191817161514131211109876543210
size111VR00opc0imm901RnRt
Decode fields Instruction Details Feature
sizeVRopc
00000STRB (immediate)-
00001LDRB (immediate)-
00010LDRSB (immediate)64-bit-
00011LDRSB (immediate)32-bit-
00100STR (immediate, SIMD&FP)8-bitFEAT_FP
00101LDR (immediate, SIMD&FP)8-bitFEAT_FP
00110STR (immediate, SIMD&FP)128-bitFEAT_FP
00111LDR (immediate, SIMD&FP)128-bitFEAT_FP
01000STRH (immediate)-
01001LDRH (immediate)-
01010LDRSH (immediate)64-bit-
01011LDRSH (immediate)32-bit-
01100STR (immediate, SIMD&FP)16-bitFEAT_FP
01101LDR (immediate, SIMD&FP)16-bitFEAT_FP
0111xUNALLOCATED-
10000STR (immediate)32-bit-
10001LDR (immediate)32-bit-
10010LDRSW (immediate)-
10011UNALLOCATED-
10100STR (immediate, SIMD&FP)32-bitFEAT_FP
10101LDR (immediate, SIMD&FP)32-bitFEAT_FP
1011xUNALLOCATED-
111xUNALLOCATED-
11000STR (immediate)64-bit-
11001LDR (immediate)64-bit-
11100STR (immediate, SIMD&FP)64-bitFEAT_FP
11101LDR (immediate, SIMD&FP)64-bitFEAT_FP

Load/store register (unprivileged)

The encodings in this section are decoded from Loads and Stores.

313029282726252423222120191817161514131211109876543210
size111VR00opc0imm910RnRt
Decode fields Instruction Details
sizeVRopc
1UNALLOCATED
00000STTRB
00001LDTRB
00010LDTRSB64-bit
00011LDTRSB32-bit
01000STTRH
01001LDTRH
01010LDTRSH64-bit
01011LDTRSH32-bit
10000STTR32-bit
10001LDTR32-bit
10010LDTRSW
10011UNALLOCATED
11000STTR64-bit
11001LDTR64-bit
1101xUNALLOCATED

Load/store register (immediate pre-indexed)

The encodings in this section are decoded from Loads and Stores.

313029282726252423222120191817161514131211109876543210
size111VR00opc0imm911RnRt
Decode fields Instruction Details Feature
sizeVRopc
00000STRB (immediate)-
00001LDRB (immediate)-
00010LDRSB (immediate)64-bit-
00011LDRSB (immediate)32-bit-
00100STR (immediate, SIMD&FP)8-bitFEAT_FP
00101LDR (immediate, SIMD&FP)8-bitFEAT_FP
00110STR (immediate, SIMD&FP)128-bitFEAT_FP
00111LDR (immediate, SIMD&FP)128-bitFEAT_FP
01000STRH (immediate)-
01001LDRH (immediate)-
01010LDRSH (immediate)64-bit-
01011LDRSH (immediate)32-bit-
01100STR (immediate, SIMD&FP)16-bitFEAT_FP
01101LDR (immediate, SIMD&FP)16-bitFEAT_FP
0111xUNALLOCATED-
10000STR (immediate)32-bit-
10001LDR (immediate)32-bit-
10010LDRSW (immediate)-
10011UNALLOCATED-
10100STR (immediate, SIMD&FP)32-bitFEAT_FP
10101LDR (immediate, SIMD&FP)32-bitFEAT_FP
1011xUNALLOCATED-
111xUNALLOCATED-
11000STR (immediate)64-bit-
11001LDR (immediate)64-bit-
11100STR (immediate, SIMD&FP)64-bitFEAT_FP
11101LDR (immediate, SIMD&FP)64-bitFEAT_FP

Atomic memory operations

The encodings in this section are decoded from Loads and Stores.

313029282726252423222120191817161514131211109876543210
size111VR00AR1Rso3opc00RnRt
Decode fields Instruction Details Feature
sizeVRARRso3opcRt
001100UNALLOCATED-
00111xUNALLOCATED-
0111100UNALLOCATED-
10001UNALLOCATED-
1001xUNALLOCATED-
101!= 11111UNALLOCATED-
10100111111UNALLOCATED-
10101x11111UNALLOCATED-
111UNALLOCATED-
0x001101UNALLOCATED-
0x0011101UNALLOCATED-
0x01111xUNALLOCATED-
0x0111101UNALLOCATED-
000000000LDADDB, LDADDAB, LDADDALB, LDADDLBNo memory orderingFEAT_LSE
000000001LDCLRB, LDCLRAB, LDCLRALB, LDCLRLBNo memory orderingFEAT_LSE
000000010LDEORB, LDEORAB, LDEORALB, LDEORLBNo memory orderingFEAT_LSE
000000011LDSETB, LDSETAB, LDSETALB, LDSETLBNo memory orderingFEAT_LSE
000000100LDSMAXB, LDSMAXAB, LDSMAXALB, LDSMAXLBNo memory orderingFEAT_LSE
000000101LDSMINB, LDSMINAB, LDSMINALB, LDSMINLBNo memory orderingFEAT_LSE
000000110LDUMAXB, LDUMAXAB, LDUMAXALB, LDUMAXLBNo memory orderingFEAT_LSE
000000111LDUMINB, LDUMINAB, LDUMINALB, LDUMINLBNo memory orderingFEAT_LSE
000001000SWPB, SWPAB, SWPALB, SWPLBSWPBFEAT_LSE
000001001RCWCLR, RCWCLRA, RCWCLRAL, RCWCLRLRCWCLRFEAT_THE
000001010RCWSWP, RCWSWPA, RCWSWPAL, RCWSWPLRCWSWPFEAT_THE
000001011RCWSET, RCWSETA, RCWSETAL, RCWSETLRCWSETFEAT_THE
000010000LDADDB, LDADDAB, LDADDALB, LDADDLBReleaseFEAT_LSE
000010001LDCLRB, LDCLRAB, LDCLRALB, LDCLRLBReleaseFEAT_LSE
000010010LDEORB, LDEORAB, LDEORALB, LDEORLBReleaseFEAT_LSE
000010011LDSETB, LDSETAB, LDSETALB, LDSETLBReleaseFEAT_LSE
000010100LDSMAXB, LDSMAXAB, LDSMAXALB, LDSMAXLBReleaseFEAT_LSE
000010101LDSMINB, LDSMINAB, LDSMINALB, LDSMINLBReleaseFEAT_LSE
000010110LDUMAXB, LDUMAXAB, LDUMAXALB, LDUMAXLBReleaseFEAT_LSE
000010111LDUMINB, LDUMINAB, LDUMINALB, LDUMINLBReleaseFEAT_LSE
000011000SWPB, SWPAB, SWPALB, SWPLBSWPLBFEAT_LSE
000011001RCWCLR, RCWCLRA, RCWCLRAL, RCWCLRLRCWCLRLFEAT_THE
000011010RCWSWP, RCWSWPA, RCWSWPAL, RCWSWPLRCWSWPLFEAT_THE
000011011RCWSET, RCWSETA, RCWSETAL, RCWSETLRCWSETLFEAT_THE
000100000LDADDB, LDADDAB, LDADDALB, LDADDLBAcquireFEAT_LSE
000100001LDCLRB, LDCLRAB, LDCLRALB, LDCLRLBAcquireFEAT_LSE
000100010LDEORB, LDEORAB, LDEORALB, LDEORLBAcquireFEAT_LSE
000100011LDSETB, LDSETAB, LDSETALB, LDSETLBAcquireFEAT_LSE
000100100LDSMAXB, LDSMAXAB, LDSMAXALB, LDSMAXLBAcquireFEAT_LSE
000100101LDSMINB, LDSMINAB, LDSMINALB, LDSMINLBAcquireFEAT_LSE
000100110LDUMAXB, LDUMAXAB, LDUMAXALB, LDUMAXLBAcquireFEAT_LSE
000100111LDUMINB, LDUMINAB, LDUMINALB, LDUMINLBAcquireFEAT_LSE
000101000SWPB, SWPAB, SWPALB, SWPLBSWPABFEAT_LSE
000101001RCWCLR, RCWCLRA, RCWCLRAL, RCWCLRLRCWCLRAFEAT_THE
000101010RCWSWP, RCWSWPA, RCWSWPAL, RCWSWPLRCWSWPAFEAT_THE
000101011RCWSET, RCWSETA, RCWSETAL, RCWSETLRCWSETAFEAT_THE
000101100LDAPRBFEAT_LRCPC
000110000LDADDB, LDADDAB, LDADDALB, LDADDLBAcquire-releaseFEAT_LSE
000110001LDCLRB, LDCLRAB, LDCLRALB, LDCLRLBAcquire-releaseFEAT_LSE
000110010LDEORB, LDEORAB, LDEORALB, LDEORLBAcquire-releaseFEAT_LSE
000110011LDSETB, LDSETAB, LDSETALB, LDSETLBAcquire-releaseFEAT_LSE
000110100LDSMAXB, LDSMAXAB, LDSMAXALB, LDSMAXLBAcquire-releaseFEAT_LSE
000110101LDSMINB, LDSMINAB, LDSMINALB, LDSMINLBAcquire-releaseFEAT_LSE
000110110LDUMAXB, LDUMAXAB, LDUMAXALB, LDUMAXLBAcquire-releaseFEAT_LSE
000110111LDUMINB, LDUMINAB, LDUMINALB, LDUMINLBAcquire-releaseFEAT_LSE
000111000SWPB, SWPAB, SWPALB, SWPLBSWPALBFEAT_LSE
000111001RCWCLR, RCWCLRA, RCWCLRAL, RCWCLRLRCWCLRALFEAT_THE
000111010RCWSWP, RCWSWPA, RCWSWPAL, RCWSWPLRCWSWPALFEAT_THE
000111011RCWSET, RCWSETA, RCWSETAL, RCWSETLRCWSETALFEAT_THE
001000000LDBFADD, LDBFADDA, LDBFADDAL, LDBFADDLNo memory orderingFEAT_LSFE
001000100LDBFMAX, LDBFMAXA, LDBFMAXAL, LDBFMAXLNo memory orderingFEAT_LSFE
001000101LDBFMIN, LDBFMINA, LDBFMINAL, LDBFMINLNo memory orderingFEAT_LSFE
001000110LDBFMAXNM, LDBFMAXNMA, LDBFMAXNMAL, LDBFMAXNMLNo memory orderingFEAT_LSFE
001000111LDBFMINNM, LDBFMINNMA, LDBFMINNMAL, LDBFMINNMLNo memory orderingFEAT_LSFE
00100100011111STBFADD, STBFADDLNo memory orderingFEAT_LSFE
00100110011111STBFMAX, STBFMAXLNo memory orderingFEAT_LSFE
00100110111111STBFMIN, STBFMINLNo memory orderingFEAT_LSFE
00100111011111STBFMAXNM, STBFMAXNMLNo memory orderingFEAT_LSFE
00100111111111STBFMINNM, STBFMINNMLNo memory orderingFEAT_LSFE
001010000LDBFADD, LDBFADDA, LDBFADDAL, LDBFADDLReleaseFEAT_LSFE
001010100LDBFMAX, LDBFMAXA, LDBFMAXAL, LDBFMAXLReleaseFEAT_LSFE
001010101LDBFMIN, LDBFMINA, LDBFMINAL, LDBFMINLReleaseFEAT_LSFE
001010110LDBFMAXNM, LDBFMAXNMA, LDBFMAXNMAL, LDBFMAXNMLReleaseFEAT_LSFE
001010111LDBFMINNM, LDBFMINNMA, LDBFMINNMAL, LDBFMINNMLReleaseFEAT_LSFE
00101100011111STBFADD, STBFADDLReleaseFEAT_LSFE
00101110011111STBFMAX, STBFMAXLReleaseFEAT_LSFE
00101110111111STBFMIN, STBFMINLReleaseFEAT_LSFE
00101111011111STBFMAXNM, STBFMAXNMLReleaseFEAT_LSFE
00101111111111STBFMINNM, STBFMINNMLReleaseFEAT_LSFE
001100000LDBFADD, LDBFADDA, LDBFADDAL, LDBFADDLAcquireFEAT_LSFE
001100100LDBFMAX, LDBFMAXA, LDBFMAXAL, LDBFMAXLAcquireFEAT_LSFE
001100101LDBFMIN, LDBFMINA, LDBFMINAL, LDBFMINLAcquireFEAT_LSFE
001100110LDBFMAXNM, LDBFMAXNMA, LDBFMAXNMAL, LDBFMAXNMLAcquireFEAT_LSFE
001100111LDBFMINNM, LDBFMINNMA, LDBFMINNMAL, LDBFMINNMLAcquireFEAT_LSFE
001110000LDBFADD, LDBFADDA, LDBFADDAL, LDBFADDLAcquire-releaseFEAT_LSFE
001110100LDBFMAX, LDBFMAXA, LDBFMAXAL, LDBFMAXLAcquire-releaseFEAT_LSFE
001110101LDBFMIN, LDBFMINA, LDBFMINAL, LDBFMINLAcquire-releaseFEAT_LSFE
001110110LDBFMAXNM, LDBFMAXNMA, LDBFMAXNMAL, LDBFMAXNMLAcquire-releaseFEAT_LSFE
001110111LDBFMINNM, LDBFMINNMA, LDBFMINNMAL, LDBFMINNMLAcquire-releaseFEAT_LSFE
010000000LDADDH, LDADDAH, LDADDALH, LDADDLHNo memory orderingFEAT_LSE
010000001LDCLRH, LDCLRAH, LDCLRALH, LDCLRLHNo memory orderingFEAT_LSE
010000010LDEORH, LDEORAH, LDEORALH, LDEORLHNo memory orderingFEAT_LSE
010000011LDSETH, LDSETAH, LDSETALH, LDSETLHNo memory orderingFEAT_LSE
010000100LDSMAXH, LDSMAXAH, LDSMAXALH, LDSMAXLHNo memory orderingFEAT_LSE
010000101LDSMINH, LDSMINAH, LDSMINALH, LDSMINLHNo memory orderingFEAT_LSE
010000110LDUMAXH, LDUMAXAH, LDUMAXALH, LDUMAXLHNo memory orderingFEAT_LSE
010000111LDUMINH, LDUMINAH, LDUMINALH, LDUMINLHNo memory orderingFEAT_LSE
010001000SWPH, SWPAH, SWPALH, SWPLHSWPHFEAT_LSE
010001001RCWSCLR, RCWSCLRA, RCWSCLRAL, RCWSCLRLRCWSCLRFEAT_THE
010001010RCWSSWP, RCWSSWPA, RCWSSWPAL, RCWSSWPLRCWSSWPFEAT_THE
010001011RCWSSET, RCWSSETA, RCWSSETAL, RCWSSETLRCWSSETFEAT_THE
010010000LDADDH, LDADDAH, LDADDALH, LDADDLHReleaseFEAT_LSE
010010001LDCLRH, LDCLRAH, LDCLRALH, LDCLRLHReleaseFEAT_LSE
010010010LDEORH, LDEORAH, LDEORALH, LDEORLHReleaseFEAT_LSE
010010011LDSETH, LDSETAH, LDSETALH, LDSETLHReleaseFEAT_LSE
010010100LDSMAXH, LDSMAXAH, LDSMAXALH, LDSMAXLHReleaseFEAT_LSE
010010101LDSMINH, LDSMINAH, LDSMINALH, LDSMINLHReleaseFEAT_LSE
010010110LDUMAXH, LDUMAXAH, LDUMAXALH, LDUMAXLHReleaseFEAT_LSE
010010111LDUMINH, LDUMINAH, LDUMINALH, LDUMINLHReleaseFEAT_LSE
010011000SWPH, SWPAH, SWPALH, SWPLHSWPLHFEAT_LSE
010011001RCWSCLR, RCWSCLRA, RCWSCLRAL, RCWSCLRLRCWSCLRLFEAT_THE
010011010RCWSSWP, RCWSSWPA, RCWSSWPAL, RCWSSWPLRCWSSWPLFEAT_THE
010011011RCWSSET, RCWSSETA, RCWSSETAL, RCWSSETLRCWSSETLFEAT_THE
010100000LDADDH, LDADDAH, LDADDALH, LDADDLHAcquireFEAT_LSE
010100001LDCLRH, LDCLRAH, LDCLRALH, LDCLRLHAcquireFEAT_LSE
010100010LDEORH, LDEORAH, LDEORALH, LDEORLHAcquireFEAT_LSE
010100011LDSETH, LDSETAH, LDSETALH, LDSETLHAcquireFEAT_LSE
010100100LDSMAXH, LDSMAXAH, LDSMAXALH, LDSMAXLHAcquireFEAT_LSE
010100101LDSMINH, LDSMINAH, LDSMINALH, LDSMINLHAcquireFEAT_LSE
010100110LDUMAXH, LDUMAXAH, LDUMAXALH, LDUMAXLHAcquireFEAT_LSE
010100111LDUMINH, LDUMINAH, LDUMINALH, LDUMINLHAcquireFEAT_LSE
010101000SWPH, SWPAH, SWPALH, SWPLHSWPAHFEAT_LSE
010101001RCWSCLR, RCWSCLRA, RCWSCLRAL, RCWSCLRLRCWSCLRAFEAT_THE
010101010RCWSSWP, RCWSSWPA, RCWSSWPAL, RCWSSWPLRCWSSWPAFEAT_THE
010101011RCWSSET, RCWSSETA, RCWSSETAL, RCWSSETLRCWSSETAFEAT_THE
010101100LDAPRHFEAT_LRCPC
010110000LDADDH, LDADDAH, LDADDALH, LDADDLHAcquire-releaseFEAT_LSE
010110001LDCLRH, LDCLRAH, LDCLRALH, LDCLRLHAcquire-releaseFEAT_LSE
010110010LDEORH, LDEORAH, LDEORALH, LDEORLHAcquire-releaseFEAT_LSE
010110011LDSETH, LDSETAH, LDSETALH, LDSETLHAcquire-releaseFEAT_LSE
010110100LDSMAXH, LDSMAXAH, LDSMAXALH, LDSMAXLHAcquire-releaseFEAT_LSE
010110101LDSMINH, LDSMINAH, LDSMINALH, LDSMINLHAcquire-releaseFEAT_LSE
010110110LDUMAXH, LDUMAXAH, LDUMAXALH, LDUMAXLHAcquire-releaseFEAT_LSE
010110111LDUMINH, LDUMINAH, LDUMINALH, LDUMINLHAcquire-releaseFEAT_LSE
010111000SWPH, SWPAH, SWPALH, SWPLHSWPALHFEAT_LSE
010111001RCWSCLR, RCWSCLRA, RCWSCLRAL, RCWSCLRLRCWSCLRALFEAT_THE
010111010RCWSSWP, RCWSSWPA, RCWSSWPAL, RCWSSWPLRCWSSWPALFEAT_THE
010111011RCWSSET, RCWSSETA, RCWSSETAL, RCWSSETLRCWSSETALFEAT_THE
011000000LDFADD, LDFADDA, LDFADDAL, LDFADDLHalf-precision no memory orderingFEAT_LSFE
011000100LDFMAX, LDFMAXA, LDFMAXAL, LDFMAXLHalf-precision no memory orderingFEAT_LSFE
011000101LDFMIN, LDFMINA, LDFMINAL, LDFMINLHalf-precision no memory orderingFEAT_LSFE
011000110LDFMAXNM, LDFMAXNMA, LDFMAXNMAL, LDFMAXNMLHalf-precision no memory orderingFEAT_LSFE
011000111LDFMINNM, LDFMINNMA, LDFMINNMAL, LDFMINNMLHalf-precision no memory orderingFEAT_LSFE
01100100011111STFADD, STFADDLHalf-precision no memory orderingFEAT_LSFE
01100110011111STFMAX, STFMAXLHalf-precision no memory orderingFEAT_LSFE
01100110111111STFMIN, STFMINLHalf-precision no memory orderingFEAT_LSFE
01100111011111STFMAXNM, STFMAXNMLHalf-precision no memory orderingFEAT_LSFE
01100111111111STFMINNM, STFMINNMLHalf-precision no memory orderingFEAT_LSFE
011010000LDFADD, LDFADDA, LDFADDAL, LDFADDLHalf-precision releaseFEAT_LSFE
011010100LDFMAX, LDFMAXA, LDFMAXAL, LDFMAXLHalf-precision releaseFEAT_LSFE
011010101LDFMIN, LDFMINA, LDFMINAL, LDFMINLHalf-precision releaseFEAT_LSFE
011010110LDFMAXNM, LDFMAXNMA, LDFMAXNMAL, LDFMAXNMLHalf-precision releaseFEAT_LSFE
011010111LDFMINNM, LDFMINNMA, LDFMINNMAL, LDFMINNMLHalf-precision releaseFEAT_LSFE
01101100011111STFADD, STFADDLHalf-precision releaseFEAT_LSFE
01101110011111STFMAX, STFMAXLHalf-precision releaseFEAT_LSFE
01101110111111STFMIN, STFMINLHalf-precision releaseFEAT_LSFE
01101111011111STFMAXNM, STFMAXNMLHalf-precision releaseFEAT_LSFE
01101111111111STFMINNM, STFMINNMLHalf-precision releaseFEAT_LSFE
011100000LDFADD, LDFADDA, LDFADDAL, LDFADDLHalf-precision acquireFEAT_LSFE
011100100LDFMAX, LDFMAXA, LDFMAXAL, LDFMAXLHalf-precision acquireFEAT_LSFE
011100101LDFMIN, LDFMINA, LDFMINAL, LDFMINLHalf-precision acquireFEAT_LSFE
011100110LDFMAXNM, LDFMAXNMA, LDFMAXNMAL, LDFMAXNMLHalf-precision acquireFEAT_LSFE
011100111LDFMINNM, LDFMINNMA, LDFMINNMAL, LDFMINNMLHalf-precision acquireFEAT_LSFE
011110000LDFADD, LDFADDA, LDFADDAL, LDFADDLHalf-precision acquire-releaseFEAT_LSFE
011110100LDFMAX, LDFMAXA, LDFMAXAL, LDFMAXLHalf-precision acquire-releaseFEAT_LSFE
011110101LDFMIN, LDFMINA, LDFMINAL, LDFMINLHalf-precision acquire-releaseFEAT_LSFE
011110110LDFMAXNM, LDFMAXNMA, LDFMAXNMAL, LDFMAXNMLHalf-precision acquire-releaseFEAT_LSFE
011110111LDFMINNM, LDFMINNMA, LDFMINNMAL, LDFMINNMLHalf-precision acquire-releaseFEAT_LSFE
1x011x1xUNALLOCATED-
1x011!= x00x01UNALLOCATED-
10001x01UNALLOCATED-
10001010UNALLOCATED-
10001011UNALLOCATED-
100000000LDADD, LDADDA, LDADDAL, LDADDL32-bit no memory orderingFEAT_LSE
100000001LDCLR, LDCLRA, LDCLRAL, LDCLRL32-bit no memory orderingFEAT_LSE
100000010LDEOR, LDEORA, LDEORAL, LDEORL32-bit no memory orderingFEAT_LSE
100000011LDSET, LDSETA, LDSETAL, LDSETL32-bit no memory orderingFEAT_LSE
100000100LDSMAX, LDSMAXA, LDSMAXAL, LDSMAXL32-bit no memory orderingFEAT_LSE
100000101LDSMIN, LDSMINA, LDSMINAL, LDSMINL32-bit no memory orderingFEAT_LSE
100000110LDUMAX, LDUMAXA, LDUMAXAL, LDUMAXL32-bit no memory orderingFEAT_LSE
100000111LDUMIN, LDUMINA, LDUMINAL, LDUMINL32-bit no memory orderingFEAT_LSE
100001000SWP, SWPA, SWPAL, SWPL32-bit SWPFEAT_LSE
100010000LDADD, LDADDA, LDADDAL, LDADDL32-bit releaseFEAT_LSE
100010001LDCLR, LDCLRA, LDCLRAL, LDCLRL32-bit releaseFEAT_LSE
100010010LDEOR, LDEORA, LDEORAL, LDEORL32-bit releaseFEAT_LSE
100010011LDSET, LDSETA, LDSETAL, LDSETL32-bit releaseFEAT_LSE
100010100LDSMAX, LDSMAXA, LDSMAXAL, LDSMAXL32-bit releaseFEAT_LSE
100010101LDSMIN, LDSMINA, LDSMINAL, LDSMINL32-bit releaseFEAT_LSE
100010110LDUMAX, LDUMAXA, LDUMAXAL, LDUMAXL32-bit releaseFEAT_LSE
100010111LDUMIN, LDUMINA, LDUMINAL, LDUMINL32-bit releaseFEAT_LSE
100011000SWP, SWPA, SWPAL, SWPL32-bit SWPLFEAT_LSE
100100000LDADD, LDADDA, LDADDAL, LDADDL32-bit acquireFEAT_LSE
100100001LDCLR, LDCLRA, LDCLRAL, LDCLRL32-bit acquireFEAT_LSE
100100010LDEOR, LDEORA, LDEORAL, LDEORL32-bit acquireFEAT_LSE
100100011LDSET, LDSETA, LDSETAL, LDSETL32-bit acquireFEAT_LSE
100100100LDSMAX, LDSMAXA, LDSMAXAL, LDSMAXL32-bit acquireFEAT_LSE
100100101LDSMIN, LDSMINA, LDSMINAL, LDSMINL32-bit acquireFEAT_LSE
100100110LDUMAX, LDUMAXA, LDUMAXAL, LDUMAXL32-bit acquireFEAT_LSE
100100111LDUMIN, LDUMINA, LDUMINAL, LDUMINL32-bit acquireFEAT_LSE
100101000SWP, SWPA, SWPAL, SWPL32-bit SWPAFEAT_LSE
100101100LDAPR32-bitFEAT_LRCPC
100110000LDADD, LDADDA, LDADDAL, LDADDL32-bit acquire-releaseFEAT_LSE
100110001LDCLR, LDCLRA, LDCLRAL, LDCLRL32-bit acquire-releaseFEAT_LSE
100110010LDEOR, LDEORA, LDEORAL, LDEORL32-bit acquire-releaseFEAT_LSE
100110011LDSET, LDSETA, LDSETAL, LDSETL32-bit acquire-releaseFEAT_LSE
100110100LDSMAX, LDSMAXA, LDSMAXAL, LDSMAXL32-bit acquire-releaseFEAT_LSE
100110101LDSMIN, LDSMINA, LDSMINAL, LDSMINL32-bit acquire-releaseFEAT_LSE
100110110LDUMAX, LDUMAXA, LDUMAXAL, LDUMAXL32-bit acquire-releaseFEAT_LSE
100110111LDUMIN, LDUMINA, LDUMINAL, LDUMINL32-bit acquire-releaseFEAT_LSE
100111000SWP, SWPA, SWPAL, SWPL32-bit SWPALFEAT_LSE
101000000LDFADD, LDFADDA, LDFADDAL, LDFADDLSingle-precision no memory orderingFEAT_LSFE
101000100LDFMAX, LDFMAXA, LDFMAXAL, LDFMAXLSingle-precision no memory orderingFEAT_LSFE
101000101LDFMIN, LDFMINA, LDFMINAL, LDFMINLSingle-precision no memory orderingFEAT_LSFE
101000110LDFMAXNM, LDFMAXNMA, LDFMAXNMAL, LDFMAXNMLSingle-precision no memory orderingFEAT_LSFE
101000111LDFMINNM, LDFMINNMA, LDFMINNMAL, LDFMINNMLSingle-precision no memory orderingFEAT_LSFE
10100100011111STFADD, STFADDLSingle-precision no memory orderingFEAT_LSFE
10100110011111STFMAX, STFMAXLSingle-precision no memory orderingFEAT_LSFE
10100110111111STFMIN, STFMINLSingle-precision no memory orderingFEAT_LSFE
10100111011111STFMAXNM, STFMAXNMLSingle-precision no memory orderingFEAT_LSFE
10100111111111STFMINNM, STFMINNMLSingle-precision no memory orderingFEAT_LSFE
101010000LDFADD, LDFADDA, LDFADDAL, LDFADDLSingle-precision releaseFEAT_LSFE
101010100LDFMAX, LDFMAXA, LDFMAXAL, LDFMAXLSingle-precision releaseFEAT_LSFE
101010101LDFMIN, LDFMINA, LDFMINAL, LDFMINLSingle-precision releaseFEAT_LSFE
101010110LDFMAXNM, LDFMAXNMA, LDFMAXNMAL, LDFMAXNMLSingle-precision releaseFEAT_LSFE
101010111LDFMINNM, LDFMINNMA, LDFMINNMAL, LDFMINNMLSingle-precision releaseFEAT_LSFE
10101100011111STFADD, STFADDLSingle-precision releaseFEAT_LSFE
10101110011111STFMAX, STFMAXLSingle-precision releaseFEAT_LSFE
10101110111111STFMIN, STFMINLSingle-precision releaseFEAT_LSFE
10101111011111STFMAXNM, STFMAXNMLSingle-precision releaseFEAT_LSFE
10101111111111STFMINNM, STFMINNMLSingle-precision releaseFEAT_LSFE
101100000LDFADD, LDFADDA, LDFADDAL, LDFADDLSingle-precision acquireFEAT_LSFE
101100100LDFMAX, LDFMAXA, LDFMAXAL, LDFMAXLSingle-precision acquireFEAT_LSFE
101100101LDFMIN, LDFMINA, LDFMINAL, LDFMINLSingle-precision acquireFEAT_LSFE
101100110LDFMAXNM, LDFMAXNMA, LDFMAXNMAL, LDFMAXNMLSingle-precision acquireFEAT_LSFE
101100111LDFMINNM, LDFMINNMA, LDFMINNMAL, LDFMINNMLSingle-precision acquireFEAT_LSFE
101110000LDFADD, LDFADDA, LDFADDAL, LDFADDLSingle-precision acquire-releaseFEAT_LSFE
101110100LDFMAX, LDFMAXA, LDFMAXAL, LDFMAXLSingle-precision acquire-releaseFEAT_LSFE
101110101LDFMIN, LDFMINA, LDFMINAL, LDFMINLSingle-precision acquire-releaseFEAT_LSFE
101110110LDFMAXNM, LDFMAXNMA, LDFMAXNMAL, LDFMAXNMLSingle-precision acquire-releaseFEAT_LSFE
101110111LDFMINNM, LDFMINNMA, LDFMINNMAL, LDFMINNMLSingle-precision acquire-releaseFEAT_LSFE
110000000LDADD, LDADDA, LDADDAL, LDADDL64-bit no memory orderingFEAT_LSE
110000001LDCLR, LDCLRA, LDCLRAL, LDCLRL64-bit no memory orderingFEAT_LSE
110000010LDEOR, LDEORA, LDEORAL, LDEORL64-bit no memory orderingFEAT_LSE
110000011LDSET, LDSETA, LDSETAL, LDSETL64-bit no memory orderingFEAT_LSE
110000100LDSMAX, LDSMAXA, LDSMAXAL, LDSMAXL64-bit no memory orderingFEAT_LSE
110000101LDSMIN, LDSMINA, LDSMINAL, LDSMINL64-bit no memory orderingFEAT_LSE
110000110LDUMAX, LDUMAXA, LDUMAXAL, LDUMAXL64-bit no memory orderingFEAT_LSE
110000111LDUMIN, LDUMINA, LDUMINAL, LDUMINL64-bit no memory orderingFEAT_LSE
110001000SWP, SWPA, SWPAL, SWPL64-bit SWPFEAT_LSE
110001010ST64BV0FEAT_LS64_ACCDATA
110001011ST64BVFEAT_LS64_V
11000111111001ST64BFEAT_LS64
11000111111101LD64BFEAT_LS64
11000!= 111111x01UNALLOCATED-
110010000LDADD, LDADDA, LDADDAL, LDADDL64-bit releaseFEAT_LSE
110010001LDCLR, LDCLRA, LDCLRAL, LDCLRL64-bit releaseFEAT_LSE
110010010LDEOR, LDEORA, LDEORAL, LDEORL64-bit releaseFEAT_LSE
110010011LDSET, LDSETA, LDSETAL, LDSETL64-bit releaseFEAT_LSE
110010100LDSMAX, LDSMAXA, LDSMAXAL, LDSMAXL64-bit releaseFEAT_LSE
110010101LDSMIN, LDSMINA, LDSMINAL, LDSMINL64-bit releaseFEAT_LSE
110010110LDUMAX, LDUMAXA, LDUMAXAL, LDUMAXL64-bit releaseFEAT_LSE
110010111LDUMIN, LDUMINA, LDUMINAL, LDUMINL64-bit releaseFEAT_LSE
110011x01UNALLOCATED-
110011000SWP, SWPA, SWPAL, SWPL64-bit SWPLFEAT_LSE
110011010UNALLOCATED-
110011011UNALLOCATED-
110100000LDADD, LDADDA, LDADDAL, LDADDL64-bit acquireFEAT_LSE
110100001LDCLR, LDCLRA, LDCLRAL, LDCLRL64-bit acquireFEAT_LSE
110100010LDEOR, LDEORA, LDEORAL, LDEORL64-bit acquireFEAT_LSE
110100011LDSET, LDSETA, LDSETAL, LDSETL64-bit acquireFEAT_LSE
110100100LDSMAX, LDSMAXA, LDSMAXAL, LDSMAXL64-bit acquireFEAT_LSE
110100101LDSMIN, LDSMINA, LDSMINAL, LDSMINL64-bit acquireFEAT_LSE
110100110LDUMAX, LDUMAXA, LDUMAXAL, LDUMAXL64-bit acquireFEAT_LSE
110100111LDUMIN, LDUMINA, LDUMINAL, LDUMINL64-bit acquireFEAT_LSE
110101000SWP, SWPA, SWPAL, SWPL64-bit SWPAFEAT_LSE
110101100LDAPR64-bitFEAT_LRCPC
110110000LDADD, LDADDA, LDADDAL, LDADDL64-bit acquire-releaseFEAT_LSE
110110001LDCLR, LDCLRA, LDCLRAL, LDCLRL64-bit acquire-releaseFEAT_LSE
110110010LDEOR, LDEORA, LDEORAL, LDEORL64-bit acquire-releaseFEAT_LSE
110110011LDSET, LDSETA, LDSETAL, LDSETL64-bit acquire-releaseFEAT_LSE
110110100LDSMAX, LDSMAXA, LDSMAXAL, LDSMAXL64-bit acquire-releaseFEAT_LSE
110110101LDSMIN, LDSMINA, LDSMINAL, LDSMINL64-bit acquire-releaseFEAT_LSE
110110110LDUMAX, LDUMAXA, LDUMAXAL, LDUMAXL64-bit acquire-releaseFEAT_LSE
110110111LDUMIN, LDUMINA, LDUMINAL, LDUMINL64-bit acquire-releaseFEAT_LSE
110111000SWP, SWPA, SWPAL, SWPL64-bit SWPALFEAT_LSE
111000000LDFADD, LDFADDA, LDFADDAL, LDFADDLDouble-precision no memory orderingFEAT_LSFE
111000100LDFMAX, LDFMAXA, LDFMAXAL, LDFMAXLDouble-precision no memory orderingFEAT_LSFE
111000101LDFMIN, LDFMINA, LDFMINAL, LDFMINLDouble-precision no memory orderingFEAT_LSFE
111000110LDFMAXNM, LDFMAXNMA, LDFMAXNMAL, LDFMAXNMLDouble-precision no memory orderingFEAT_LSFE
111000111LDFMINNM, LDFMINNMA, LDFMINNMAL, LDFMINNMLDouble-precision no memory orderingFEAT_LSFE
11100100011111STFADD, STFADDLDouble-precision no memory orderingFEAT_LSFE
11100110011111STFMAX, STFMAXLDouble-precision no memory orderingFEAT_LSFE
11100110111111STFMIN, STFMINLDouble-precision no memory orderingFEAT_LSFE
11100111011111STFMAXNM, STFMAXNMLDouble-precision no memory orderingFEAT_LSFE
11100111111111STFMINNM, STFMINNMLDouble-precision no memory orderingFEAT_LSFE
111010000LDFADD, LDFADDA, LDFADDAL, LDFADDLDouble-precision releaseFEAT_LSFE
111010100LDFMAX, LDFMAXA, LDFMAXAL, LDFMAXLDouble-precision releaseFEAT_LSFE
111010101LDFMIN, LDFMINA, LDFMINAL, LDFMINLDouble-precision releaseFEAT_LSFE
111010110LDFMAXNM, LDFMAXNMA, LDFMAXNMAL, LDFMAXNMLDouble-precision releaseFEAT_LSFE
111010111LDFMINNM, LDFMINNMA, LDFMINNMAL, LDFMINNMLDouble-precision releaseFEAT_LSFE
11101100011111STFADD, STFADDLDouble-precision releaseFEAT_LSFE
11101110011111STFMAX, STFMAXLDouble-precision releaseFEAT_LSFE
11101110111111STFMIN, STFMINLDouble-precision releaseFEAT_LSFE
11101111011111STFMAXNM, STFMAXNMLDouble-precision releaseFEAT_LSFE
11101111111111STFMINNM, STFMINNMLDouble-precision releaseFEAT_LSFE
111100000LDFADD, LDFADDA, LDFADDAL, LDFADDLDouble-precision acquireFEAT_LSFE
111100100LDFMAX, LDFMAXA, LDFMAXAL, LDFMAXLDouble-precision acquireFEAT_LSFE
111100101LDFMIN, LDFMINA, LDFMINAL, LDFMINLDouble-precision acquireFEAT_LSFE
111100110LDFMAXNM, LDFMAXNMA, LDFMAXNMAL, LDFMAXNMLDouble-precision acquireFEAT_LSFE
111100111LDFMINNM, LDFMINNMA, LDFMINNMAL, LDFMINNMLDouble-precision acquireFEAT_LSFE
111110000LDFADD, LDFADDA, LDFADDAL, LDFADDLDouble-precision acquire-releaseFEAT_LSFE
111110100LDFMAX, LDFMAXA, LDFMAXAL, LDFMAXLDouble-precision acquire-releaseFEAT_LSFE
111110101LDFMIN, LDFMINA, LDFMINAL, LDFMINLDouble-precision acquire-releaseFEAT_LSFE
111110110LDFMAXNM, LDFMAXNMA, LDFMAXNMAL, LDFMAXNMLDouble-precision acquire-releaseFEAT_LSFE
111110111LDFMINNM, LDFMINNMA, LDFMINNMAL, LDFMINNMLDouble-precision acquire-releaseFEAT_LSFE

Load/store register (register offset)

The encodings in this section are decoded from Loads and Stores.

313029282726252423222120191817161514131211109876543210
size111VR00opc1RmoptionS10RnRt
Decode fields Instruction Details Feature
sizeVRopcoptionRt
00000011STRB (register)Shifted register-
00000!= 011STRB (register)Extended register-
00001011LDRB (register)Shifted register-
00001!= 011LDRB (register)Extended register-
00010011LDRSB (register)64-bit with shifted register offset-
00010!= 011LDRSB (register)64-bit with extended register offset-
00011011LDRSB (register)32-bit with shifted register offset-
00011!= 011LDRSB (register)32-bit with extended register offset-
00100011STR (register, SIMD&FP)8-bit with shifted register offsetFEAT_FP
00100!= 011STR (register, SIMD&FP)8-bit with extended register offsetFEAT_FP
00101011LDR (register, SIMD&FP)8-bit with shifted register offsetFEAT_FP
00101!= 011LDR (register, SIMD&FP)8-bit with extended register offsetFEAT_FP
00110STR (register, SIMD&FP)128-bitFEAT_FP
00111LDR (register, SIMD&FP)128-bitFEAT_FP
01000STRH (register)-
01001LDRH (register)-
01010LDRSH (register)64-bit-
01011LDRSH (register)32-bit-
01100STR (register, SIMD&FP)16-bitFEAT_FP
01101LDR (register, SIMD&FP)16-bitFEAT_FP
1x011UNALLOCATED-
10000STR (register)32-bit-
10001LDR (register)32-bit-
10010LDRSW (register)-
10100STR (register, SIMD&FP)32-bitFEAT_FP
10101LDR (register, SIMD&FP)32-bitFEAT_FP
11000STR (register)64-bit-
11001LDR (register)64-bit-
11010x0xUNALLOCATED-
11010x1x11xxxRPRFMFEAT_RPRFM
11010x1x!= 11xxxPRFM (register)-
11100STR (register, SIMD&FP)64-bitFEAT_FP
11101LDR (register, SIMD&FP)64-bitFEAT_FP
!= 0011xUNALLOCATED-

Load/store register (pac)

The encodings in this section are decoded from Loads and Stores.

313029282726252423222120191817161514131211109876543210
size111VR00MS1imm9W1RnRt
Decode fields Instruction Details Feature
sizeVRMW
11000LDRAA, LDRABKey A, offsetFEAT_PAuth
11001LDRAA, LDRABKey A, pre-indexedFEAT_PAuth
11010LDRAA, LDRABKey B, offsetFEAT_PAuth
11011LDRAA, LDRABKey B, pre-indexedFEAT_PAuth
111UNALLOCATED-
!= 11UNALLOCATED-

Load/store register (unsigned immediate)

The encodings in this section are decoded from Loads and Stores.

313029282726252423222120191817161514131211109876543210
size111VR01opcimm12RnRt
Decode fields Instruction Details Feature
sizeVRopc
00000STRB (immediate)-
00001LDRB (immediate)-
00010LDRSB (immediate)64-bit-
00011LDRSB (immediate)32-bit-
00100STR (immediate, SIMD&FP)8-bitFEAT_FP
00101LDR (immediate, SIMD&FP)8-bitFEAT_FP
00110STR (immediate, SIMD&FP)128-bitFEAT_FP
00111LDR (immediate, SIMD&FP)128-bitFEAT_FP
01000STRH (immediate)-
01001LDRH (immediate)-
01010LDRSH (immediate)64-bit-
01011LDRSH (immediate)32-bit-
01100STR (immediate, SIMD&FP)16-bitFEAT_FP
01101LDR (immediate, SIMD&FP)16-bitFEAT_FP
1x011UNALLOCATED-
10000STR (immediate)32-bit-
10001LDR (immediate)32-bit-
10010LDRSW (immediate)-
10100STR (immediate, SIMD&FP)32-bitFEAT_FP
10101LDR (immediate, SIMD&FP)32-bitFEAT_FP
11000STR (immediate)64-bit-
11001LDR (immediate)64-bit-
11010PRFM (immediate)-
11100STR (immediate, SIMD&FP)64-bitFEAT_FP
11101LDR (immediate, SIMD&FP)64-bitFEAT_FP
!= 0011xUNALLOCATED-

2025-12_rel2025-09_diff_tag2025-12-102025-11-28 16:4129:4505

Copyright © 2010-2025 Arm Limited or its affiliates. All rights reserved.

(old) htmldiff from-(new)