Next: AArch64 Syntax, Previous: AArch64 Options, Up: AArch64-Dependent [Contents][Index]
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.
Extension | Minimum Architecture | Enabled by default | Description |
---|---|---|---|
aes | ARMv8-A | No | Enable the AES cryptographic extensions. This implies fp and
simd . |
bf16 | ARMv8.2-A | ARMv8.6-A or later | Enable BFloat16 extension. |
compnum | ARMv8.2-A | ARMv8.3-A or later | Enable the complex number SIMD extensions. This implies fp16 and
simd . |
crc | ARMv8-A | ARMv8.1-A or later | Enable CRC instructions. |
crypto | ARMv8-A | No | Enable cryptographic extensions. This implies fp , simd ,
aes and sha2 . |
dotprod | ARMv8.2-A | ARMv8.4-A or later | Enable the Dot Product extension. This implies simd . |
f32mm | ARMv8.2-A | No | Enable F32 Matrix Multiply extension. This implies sve . |
f64mm | ARMv8.2-A | No | Enable F64 Matrix Multiply extension. This implies sve . |
flagm | ARMv8-A | ARMv8.4-A or later | Enable Flag Manipulation instructions. |
fp16fml | ARMv8.2-A | ARMv8.4-A or later | Enable ARMv8.2 16-bit floating-point multiplication variant support. This
implies fp and fp16 . |
fp16 | ARMv8.2-A | ARMv8.2-A or later | Enable ARMv8.2 16-bit floating-point support. This implies fp . |
fp | ARMv8-A | ARMv8-A or later | Enable floating-point extensions. |
hbc | Armv8.8-A or later | Enable Armv8.8-A hinted conditional branch instructions | |
i8mm | ARMv8.2-A | ARMv8.6-A or later | Enable Int8 Matrix Multiply extension. |
lor | ARMv8-A | ARMv8.1-A or later | Enable Limited Ordering Regions extensions. |
ls64 | ARMv8.6-A | ARMv8.7-A or later | Enable 64 Byte Loads/Stores. |
lse | ARMv8-A | ARMv8.1-A or later | Enable Large System extensions. |
memtag | ARMv8.5-A | No | Enable ARMv8.5-A Memory Tagging Extensions. |
mops | Armv8.8-A or later | Enable Armv8.8-A memcpy and memset acceleration instructions | |
pan | ARMv8-A | ARMv8.1-A or later | Enable Privileged Access Never support. |
pauth | ARMv8-A | No | Enable Pointer Authentication. |
predres | ARMv8-A | ARMv8.5-A or later | Enable the Execution and Data and Prediction instructions. |
profile | ARMv8.2-A | No | Enable statistical profiling extensions. |
ras | ARMv8-A | ARMv8.2-A or later | Enable the Reliability, Availability and Serviceability extension. |
rcpc | ARMv8.2-A | ARMv8.3-A or later | Enable the weak release consistency extension. |
rdma | ARMv8-A | ARMv8.1-A or later | Enable ARMv8.1 Advanced SIMD extensions. This implies simd . |
rng | ARMv8.5-A | No | Enable ARMv8.5-A random number instructions. |
sb | ARMv8-A | ARMv8.5-A or later | Enable the speculation barrier instruction sb. |
sha2 | ARMv8-A | No | Enable the SHA2 cryptographic extensions. This implies fp and
simd . |
sha3 | ARMv8.2-A | No | Enable the ARMv8.2-A SHA2 and SHA3 cryptographic extensions. This implies
fp , simd and sha2 . |
simd | ARMv8-A | ARMv8-A or later | Enable Advanced SIMD extensions. This implies fp . |
sm4 | ARMv8.2-A | No | Enable the ARMv8.2-A SM3 and SM4 cryptographic extensions. This implies
fp and simd . |
sme | Armv9-A | No | Enable SME Extension. |
sme-f64 | Armv9-A | No | Enable SME F64 Extension. |
sme-i64 | Armv9-A | No | Enable SME I64 Extension. |
ssbs | ARMv8-A | ARMv8.5-A or later | Enable Speculative Store Bypassing Safe state read and write. |
sve | ARMv8.2-A | Armv9-A or later | Enable the Scalable Vector Extensions. This implies fp16 ,
simd and compnum . |
sve2 | ARMv8-A | Armv9-A or later | Enable the SVE2 Extension. This implies sve . |
sve2-aes | ARMv8-A | No | Enable SVE2 AES Extension. This also enables the .Q->.B form of the
pmullt and pmullb instructions. This implies aes and
sve2 . |
sve2-bitperm | ARMv8-A | No | Enable SVE2 BITPERM Extension. |
sve2-sha3 | ARMv8-A | No | Enable SVE2 SHA3 Extension. This implies sha3 and sve2 . |
sve2-sm4 | ARMv8-A | No | Enable SVE2 SM4 Extension. This implies sm4 and sve2 . |
tme | ARMv8-A | No | Enable Transactional Memory Extensions. |
Next: AArch64 Syntax, Previous: AArch64 Options, Up: AArch64-Dependent [Contents][Index]