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.
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.
f32mmsveEnable the F32 Matrix Multiply extension
f64mmsveEnable the F64 Matrix Multiply extension.
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.
fp8dot2fp8dot4Enable the FP8 2-way dot product instructions.
fp8dot4fp8fmaEnable 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.
frinttssimdEnable floating-point round to integral value instructions.
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.
lseEnable Large System extensions.
lse128lseEnable the 128-bit Atomic Instructions extension.
lutEnable the Lookup Table (LUT) extension.
memtagEnable Armv8.5-A Memory Tagging Extensions.
mopsEnable Armv8.8-A memcpy and memset acceleration instructions
panEnable Privileged Access Never support.
pauthEnable Pointer Authentication.
predresEnable the Execution and Data and Prediction instructions.
predres2predresEnable Prediction 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.
smesve2, bf16Enable the Scalable Matrix Extension.
sme-f8f16sme-f8f32Enable the SME F8F16 Extension.
sme-f8f32sme2, fp8Enable the SME F8F32 Extension.
sme-f64f64smeEnable SME F64F64 Extension.
sme-i16i64smeEnable SME I16I64 Extension.
sme-lutv2Enable SME Lookup Table v2 (LUTv2) extension.
sme2smeEnable SME2.
sme2p1sme2Enable SME2.1.
ssbsEnable Speculative Store Bypassing Safe state read and write.
ssve-fp8dot2ssve-fp8dot4Enable the Streaming SVE FP8 2-way dot product instructions. These can also be enabled using +fp8dot2+sme2.
ssve-fp8dot4ssve-fp8fmaEnable the Streaming SVE FP8 4-way dot product instructions. These can also be enabled using +fp8dot4+sme2.
ssve-fp8fmasme2, fp8Enable the Streaming SVE FP8 FMA instructions. These can also be enabled using +fp8fma+sme2.
svefcmaEnable the Scalable Vector Extension.
sve2sveEnable SVE2.
sve2-aessve2, aesEnable the SVE2 AES and PMULL Extensions.
sve2-bitpermsve2Enable the SVE2 BITPERM Extension.
sve2-sha3sve2, sha3Enable the SVE2 SHA3 Extension.
sve2-sm4sve2, sm4Enable the SVE2 SM4 Extension.
sve2p1sve2Enable SVE2.1.
theEnable the Translation Hardening 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
armv8-rarmv8.4-a+nolor