9.1.2 Architecture Extensions

The tables below lists the permitted architecture extensions and architecture versions that are supported by the assembler, including a brief description and a list of other extensions that they depend upon.

Multiple extensions may be specified, separated by a +. Extension mnemonics may also be removed from those the assembler accepts. This is done by prepending no to the option that adds the extension. Extensions that are removed must be listed after all extensions that have been added.

Enabling an extension that depends upon other extensions (either directly or recursively) will automatically cause those extensions to be enabled. Similarly, disabling an extension that is required by other extensions will automatically cause those extensions to be disabled.

ExtensionDepends uponDescription
aessimdEnable the AES and PMULL cryptographic extensions.
bf16fpEnable BFloat16 extension.
brbeEnable the Branch Record Buffer extension.
chkEnable the Check Feature Status Extension.
cmpbrEnable Compare and Branch instructions.
compnumsimdEnable the complex number SIMD extensions. An alias of fcma.
cpaEnable the Checked Pointer Arithmetic extension.
crcEnable CRC instructions.
cryptosimdEnable cryptographic extensions. This is equivalent to aes+sha2.
csscEnable the Armv8.9-A Common Short Sequence Compression instructions.
d128lse128Enable the 128-bit Page Descriptor Extension. This implies lse128.
dotprodsimdEnable the Dot Product extension.
f16f32dotsimd, fp16Enable Armv9.7 f16f32dot instructions.
f16f32mmsimd, fp16Enable Armv9.7 f16f32mm instructions.
f16mmsimd, fp16Enable f16mm instructions.
f32mmsveEnable the F32 Matrix Multiply extension.
f64mmsveEnable the F64 Matrix Multiply extension.
f8f16mmsimd fp8Enable 8-bit floating-point matrix multiply-accumulate to half-precision instructions.
f8f32mmsimd fpEnable 8-bit floating-point matrix multiply-accumulate to single-precision instructions.
faminmaxsimdEnable the famin and famax instructions.
fcmafp16, simdEnable the complex number SIMD extensions.
flagmEnable Flag Manipulation instructions.
flagm2flagmEnable FlagM2 flag conversion instructions.
fpEnable floating-point extensions.
fp8Enable the Floating Point 8 (FP8) extension.
fp8dot2fp8Enable the FP8 2-way dot product instructions.
fp8dot4fp8Enable the FP8 4-way dot product instructions.
fp8fmafp8Enable the FP8 FMA instructions.
fp16fmlfp16Enable Armv8.2 16-bit floating-point multiplication variant support.
fp16fpEnable Armv8.2 16-bit floating-point support.
fprcvtfpEnable Armv9.6 fprcvt instructions.
frinttsfpEnable floating-point round to integral value instructions.
gcieEnable the GICv5 (Generic Interrupt Controller) CPU Interface Extension.
gcsEnable the Guarded Control Stack Extension.
hbcEnable Armv8.8-A hinted conditional branch instructions.
i8mmsimdEnable the Int8 Matrix Multiply extension.
iteEnable the TRCIT instruction.
jscvtfpEnable the fjcvtzs JavaScript conversion instruction.
lorEnable Limited Ordering Regions extensions.
ls64Enable the 64 Byte Loads/Stores extensions.
lscpEnable the load acquire and store release pair extension.
lseEnable Large System extensions.
lse128lseEnable the 128-bit Atomic Instructions extension.
lsfefpEnable Large System Float Extension.
lsuiEnable Unprivileged Load/Store instructions.
lutsimdEnable the Lookup Table (LUT) extension.
memtagEnable Armv8.5-A Memory Tagging Extensions.
mopsEnable Armv8.8-A memcpy and memset acceleration instructions.
mops-gomops, memtagEnable tag only variants of MOPS instructions.
mpamv2Enable MPAMv2 system registers.
mtetcmemtagEnable Data cache tag block operations.
occmoEnable Outer Cacheable Cache Maintenance Operations.
panEnable Privileged Access Never support.
pauthEnable Pointer Authentication.
poe2Enable Permission overlays extension 2.
popsEnable Point of Physical Storage.
predresEnable execution and data prediction restriction instructions.
predres2predresEnable additional prediction restriction instructions.
profileEnable statistical profiling extensions.
rasEnable the Reliability, Availability and Serviceability extension.
rasv2rasEnable the Reliability, Availability and Serviceability extension v2.
rcpcEnable the Load-Acquire RCpc instructions extension.
rcpc2rcpcEnable the Load-Acquire RCpc instructions extension v2.
rcpc3rcpc2Enable the Load-Acquire RCpc instructions extension v3.
rdmasimdEnable rounding doubling multiply accumulate instructions.
rdmsimdAn alias of rdma.
rngEnable Armv8.5-A random number instructions.
sbEnable the speculation barrier instruction sb.
sha2simdEnable the SHA1 and SHA256 cryptographic extensions.
sha3sha2Enable the SHA512 and SHA3 cryptographic extensions.
simdfpEnable Advanced SIMD extensions.
sm4simdEnable the SM3 and SM4 cryptographic extensions.
smebf16, fp16, fcmaEnable the Scalable Matrix Extension. This will also enable sve2, but disabling sve2 does not disable sme.
sme-b16b16sme2, sve-b16b16Enable SME ZA-targeting non-widening BFloat16 instructions.
sme-f8f16sme2, fp8Enable the SME F8F16 Extension.
sme-f8f32sme2, fp8Enable the SME F8F32 Extension.
sme-f16f16sme2Enable the SME2 F16F16 Extension.
sme-f64f64smeEnable SME F64F64 Extension.
sme-i16i64smeEnable SME I16I64 Extension.
sme-lutv2Enable SME Lookup Table v2 (LUTv2) extension.
sme-mop4sme2Enable SME Quarter-tile outer product instructions.
sme-tmopsme2Enable SME structured sparsity outer product instructions.
sme2smeEnable SME2.
sme2p1sme2Enable SME2.1.
sme2p2sme2p1Enable SME2.2.
sme2p3sme2p2Enable SME2.3.
ssbsEnable Speculative Store Bypassing Safe state read and write.
ssve-aessme2, sve-aesEnable SVE AES instructions in streaming mode.
ssve-bitpermsme2, sve-bitpermEnable SVE AES instructions in streaming mode.
ssve-fexpasme2Enable the SVE FEXPA instruction in streaming mode.
ssve-fp8dot2sme2, fp8Enable the Streaming SVE FP8 2-way dot product instructions.
ssve-fp8dot4sme2, fp8Enable the Streaming SVE FP8 4-way dot product instructions.
ssve-fp8fmasme2, fp8Enable the Streaming SVE FP8 FMA instructions.
svefcmaEnable the Scalable Vector Extension.
sve-aesaesEnable the SVE2 AES and PMULL Extensions.
sve-aes2Enable the SVE-AES2 extension.
sve-b16b16Enable the SVE B16B16 extension. These instructions also require either +sve2 or +sme2.
sve-b16mmsveEnable the SVE B16MM Extension.
sve-bfscaleEnable the SVE BFSCALE extension. These instructions also require either +sve2 or +sme2.
sve-bitpermEnable the SVE2 BITPERM Extension.
sve-f16f32mmsveEnable the SVE_F16F32MM extension.
sve2sveEnable SVE2.
sve2-aessve2, sve-aesEnable the SVE2 AES and PMULL Extensions.
sve2-bitpermsve2, sve-bitpermEnable the SVE2 BITPERM Extension.
sve2-sha3sve2, sha3Enable the SVE2 SHA3 Extension.
sve2-sm4sve2, sm4Enable the SVE2 SM4 Extension.
sve2p1sve2Enable SVE2.1.
sve2p2sve2p1Enable SVE2.2.
sve2p3sve2p2Enable SVE2.3.
tevTIndex Exception-like Vector Extension.
theEnable the Translation Hardening Extension.
tlbidEnable the TLBI Domains Extension.
tmeEnable the Transactional Memory Extension.
wfxtEnable wfet and wfit instructions.
xsEnable the XS memory attribute extension.
Architecture VersionIncludes
armv8-asimd, chk, ras
armv8.1-aarmv8-a, crc, lse, rdma, pan, lor
armv8.2-aarmv8.1-a
armv8.3-aarmv8.2-a, fcma, jscvt, pauth, rcpc
armv8.4-aarmv8.3-a, fp16fml, dotprod, flagm, rcpc2
armv8.5-aarmv8.4-a, frintts, flagm2, predres, sb, ssbs
armv8.6-aarmv8.5-a, bf16, i8mm
armv8.7-aarmv8.6-a, ls64, xs, wfxt
armv8.8-aarmv8.7-a, hbc, mops
armv8.9-aarmv8.8-a, rasv2, predres2
armv9-aarmv8.5-a, sve2
armv9.1-aarmv9-a, armv8.6-a
armv9.2-aarmv9.1-a, armv8.7-a
armv9.3-aarmv9.2-a, armv8.8-a
armv9.4-aarmv9.3-a, armv8.9-a
armv9.5-aarmv9.4-a, cpa, lut, faminmax
armv9.6-aarmv9.5-a, cmpbr, lsui, occmo
armv9.7-aarmv9.6-a, sve2p2, sve2p3, f16f32dot
armv8-rarmv8.4-a+nolor