9.1.2 Architecture Extensions

The table below lists the permitted architecture extensions that are supported by the assembler and the conditions under which they are automatically enabled.

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 requires other extensions 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.

ExtensionMinimum ArchitectureEnabled by defaultDescription
aesARMv8-ANoEnable the AES cryptographic extensions. This implies fp and simd.
bf16ARMv8.2-AARMv8.6-A or laterEnable BFloat16 extension.
compnumARMv8.2-AARMv8.3-A or laterEnable the complex number SIMD extensions. This implies fp16 and simd.
crcARMv8-AARMv8.1-A or laterEnable CRC instructions.
cryptoARMv8-ANoEnable cryptographic extensions. This implies fp, simd, aes and sha2.
dotprodARMv8.2-AARMv8.4-A or laterEnable the Dot Product extension. This implies simd.
f32mmARMv8.2-ANoEnable F32 Matrix Multiply extension. This implies sve.
f64mmARMv8.2-ANoEnable F64 Matrix Multiply extension. This implies sve.
flagmARMv8-AARMv8.4-A or laterEnable Flag Manipulation instructions.
fp16fmlARMv8.2-AARMv8.4-A or laterEnable ARMv8.2 16-bit floating-point multiplication variant support. This implies fp and fp16.
fp16ARMv8.2-AARMv8.2-A or laterEnable ARMv8.2 16-bit floating-point support. This implies fp.
fpARMv8-AARMv8-A or laterEnable floating-point extensions.
hbcArmv8.8-A or laterEnable Armv8.8-A hinted conditional branch instructions
csscArmv8.7-A or laterEnable Armv8.9-A Common Short Sequence Compression instructions.
i8mmARMv8.2-AARMv8.6-A or laterEnable Int8 Matrix Multiply extension.
lorARMv8-AARMv8.1-A or laterEnable Limited Ordering Regions extensions.
ls64ARMv8.6-AARMv8.7-A or laterEnable 64 Byte Loads/Stores.
lseARMv8-AARMv8.1-A or laterEnable Large System extensions.
memtagARMv8.5-ANoEnable ARMv8.5-A Memory Tagging Extensions.
mopsArmv8.8-A or laterEnable Armv8.8-A memcpy and memset acceleration instructions
panARMv8-AARMv8.1-A or laterEnable Privileged Access Never support.
pauthARMv8-ANoEnable Pointer Authentication.
predresARMv8-AARMv8.5-A or laterEnable the Execution and Data and Prediction instructions.
profileARMv8.2-ANoEnable statistical profiling extensions.
rasARMv8-AARMv8.2-A or laterEnable the Reliability, Availability and Serviceability extension.
rcpcARMv8.2-AARMv8.3-A or laterEnable the weak release consistency extension.
rdmaARMv8-AARMv8.1-A or laterEnable ARMv8.1 Advanced SIMD extensions. This implies simd.
rngARMv8.5-ANoEnable ARMv8.5-A random number instructions.
sbARMv8-AARMv8.5-A or laterEnable the speculation barrier instruction sb.
sha2ARMv8-ANoEnable the SHA2 cryptographic extensions. This implies fp and simd.
sha3ARMv8.2-ANoEnable the ARMv8.2-A SHA2 and SHA3 cryptographic extensions. This implies fp, simd and sha2.
simdARMv8-AARMv8-A or laterEnable Advanced SIMD extensions. This implies fp.
sm4ARMv8.2-ANoEnable the ARMv8.2-A SM3 and SM4 cryptographic extensions. This implies fp and simd.
smeArmv9-ANoEnable SME Extension.
sme-f64f64Armv9-ANoEnable SME F64F64 Extension.
sme-i16i64Armv9-ANoEnable SME I16I64 Extension.
sme2Armv9-ANoEnable SME2. This implies sme.
ssbsARMv8-AARMv8.5-A or laterEnable Speculative Store Bypassing Safe state read and write.
sveARMv8.2-AArmv9-A or laterEnable the Scalable Vector Extensions. This implies fp16, simd and compnum.
sve2ARMv8-AArmv9-A or laterEnable the SVE2 Extension. This implies sve.
sve2-aesARMv8-ANoEnable SVE2 AES Extension. This also enables the .Q->.B form of the pmullt and pmullb instructions. This implies aes and sve2.
sve2-bitpermARMv8-ANoEnable SVE2 BITPERM Extension.
sve2-sha3ARMv8-ANoEnable SVE2 SHA3 Extension. This implies sha3 and sve2.
sve2-sm4ARMv8-ANoEnable SVE2 SM4 Extension. This implies sm4 and sve2.
tmeARMv8-ANoEnable Transactional Memory Extensions.