Next: , Previous: , Up: AArch64-Dependent   [Contents][Index]


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.

Extension Depends upon Description
aes simd Enable the AES and PMULL cryptographic extensions.
bf16 fp Enable BFloat16 extension.
brbe Enable the Branch Record Buffer extension.
chk Enable the Check Feature Status Extension.
cmpbr Enable Compare and Branch instructions.
compnum simd Enable the complex number SIMD extensions. An alias of fcma.
cpa Enable the Checked Pointer Arithmetic extension.
crc Enable CRC instructions.
crypto simd Enable cryptographic extensions. This is equivalent to aes+sha2.
cssc Enable the Armv8.9-A Common Short Sequence Compression instructions.
d128 lse128 Enable the 128-bit Page Descriptor Extension. This implies lse128.
dotprod simd Enable the Dot Product extension.
f32mm sve Enable the F32 Matrix Multiply extension
f64mm sve Enable the F64 Matrix Multiply extension.
f8f16mm simd fp8 Enable 8-bit floating-point matrix multiply-accumulate to half-precision instructions.
f8f32mm simd fp Enable 8-bit floating-point matrix multiply-accumulate to single-precision instructions.
faminmax simd Enable the famin and famax instructions.
fcma fp16, simd Enable the complex number SIMD extensions.
flagm Enable Flag Manipulation instructions.
flagm2 flagm Enable FlagM2 flag conversion instructions.
fp Enable floating-point extensions.
fp8 Enable the Floating Point 8 (FP8) extension.
fp8dot2 fp8 Enable the FP8 2-way dot product instructions.
fp8dot4 fp8 Enable the FP8 4-way dot product instructions.
fp8fma fp8 Enable the FP8 FMA instructions.
fp16fml fp16 Enable Armv8.2 16-bit floating-point multiplication variant support.
fp16 fp Enable Armv8.2 16-bit floating-point support.
fprcvt fp Enable Armv9.6 fprcvt instructions.
frintts fp Enable floating-point round to integral value instructions.
gcs Enable the Guarded Control Stack Extension.
hbc Enable Armv8.8-A hinted conditional branch instructions
i8mm simd Enable the Int8 Matrix Multiply extension.
ite Enable the TRCIT instruction.
jscvt fp Enable the fjcvtzs JavaScript conversion instruction.
lor Enable Limited Ordering Regions extensions.
ls64 Enable the 64 Byte Loads/Stores extensions.
lse Enable Large System extensions.
lse128 lse Enable the 128-bit Atomic Instructions extension.
lsfe fp Enable Large System Float Extension.
lsui Enable Unprivileged Load/Store instructions.
lut simd Enable the Lookup Table (LUT) extension.
memtag Enable Armv8.5-A Memory Tagging Extensions.
mops Enable Armv8.8-A memcpy and memset acceleration instructions
occmo Enable Outer Cacheable Cache Maintenance Operations.
pan Enable Privileged Access Never support.
pauth Enable Pointer Authentication.
pops Enable Point of Physical Storage.
predres Enable execution and data prediction restriction instructions.
predres2 predres Enable additional prediction restriction instructions.
profile Enable statistical profiling extensions.
ras Enable the Reliability, Availability and Serviceability extension.
rasv2 ras Enable the Reliability, Availability and Serviceability extension v2.
rcpc Enable the Load-Acquire RCpc instructions extension.
rcpc2 rcpc Enable the Load-Acquire RCpc instructions extension v2.
rcpc3 rcpc2 Enable the Load-Acquire RCpc instructions extension v3.
rdma simd Enable rounding doubling multiply accumulate instructions.
rdm simd An alias of rdma.
rng Enable Armv8.5-A random number instructions.
sb Enable the speculation barrier instruction sb.
sha2 simd Enable the SHA1 and SHA256 cryptographic extensions.
sha3 sha2 Enable the SHA512 and SHA3 cryptographic extensions.
simd fp Enable Advanced SIMD extensions.
sm4 simd Enable the SM3 and SM4 cryptographic extensions.
sme bf16, fp16, fcma Enable the Scalable Matrix Extension. This will also enable sve2, but disabling sve2 does not disable sme.
sme-b16b16 sme2, sve-b16b16 Enable SME ZA-targeting non-widening BFloat16 instructions.
sme-f8f16 sme2, fp8 Enable the SME F8F16 Extension.
sme-f8f32 sme2, fp8 Enable the SME F8F32 Extension.
sme-f16f16 sme2 Enable the SME2 F16F16 Extension.
sme-f64f64 sme Enable SME F64F64 Extension.
sme-i16i64 sme Enable SME I16I64 Extension.
sme-lutv2 Enable SME Lookup Table v2 (LUTv2) extension.
sme2 sme Enable SME2.
sme2p1 sme2 Enable SME2.1.
sme2p2 sme2p1 Enable SME2.2.
ssbs Enable Speculative Store Bypassing Safe state read and write.
ssve-aes sme2, sve-aes Enable SVE AES instructions in streaming mode.
ssve-fp8dot2 sme2, fp8 Enable the Streaming SVE FP8 2-way dot product instructions.
ssve-fp8dot4 sme2, fp8 Enable the Streaming SVE FP8 4-way dot product instructions.
ssve-fp8fma sme2, fp8 Enable the Streaming SVE FP8 FMA instructions.
sve fcma Enable the Scalable Vector Extension.
sve-aes aes Enable the SVE2 AES and PMULL Extensions.
sve-aes2 Enable the SVE-AES2 extension.
sve-b16b16 Enable the SVE B16B16 extension. These instructions also require either +sve2 or +sme2.
sve-bfscale Enable the SVE BFSCALE extension. These instructions also require either +sve2 or +sme2.
sve-f16f32mm sve Enable the SVE_F16F32MM extension.
sve2 sve Enable SVE2.
sve2-aes sve2, sve-aes Enable the SVE2 AES and PMULL Extensions.
sve2-bitperm sve2 Enable the SVE2 BITPERM Extension.
sve2-sha3 sve2, sha3 Enable the SVE2 SHA3 Extension.
sve2-sm4 sve2, sm4 Enable the SVE2 SM4 Extension.
sve2p1 sve2 Enable SVE2.1.
sve2p2 sve2p1 Enable SVE2.2.
the Enable the Translation Hardening Extension.
tme Enable the Transactional Memory Extension.
wfxt Enable wfet and wfit instructions.
xs Enable the XS memory attribute extension.
Architecture Version Includes
armv8-a simd, chk, ras
armv8.1-a armv8-a, crc, lse, rdma, pan, lor
armv8.2-a armv8.1-a
armv8.3-a armv8.2-a, fcma, jscvt, pauth, rcpc
armv8.4-a armv8.3-a, fp16fml, dotprod, flagm, rcpc2
armv8.5-a armv8.4-a, frintts, flagm2, predres, sb, ssbs
armv8.6-a armv8.5-a, bf16, i8mm
armv8.7-a armv8.6-a, ls64, xs, wfxt
armv8.8-a armv8.7-a, hbc, mops
armv8.9-a armv8.8-a, rasv2, predres2
armv9-a armv8.5-a, sve2
armv9.1-a armv9-a, armv8.6-a
armv9.2-a armv9.1-a, armv8.7-a
armv9.3-a armv9.2-a, armv8.8-a
armv9.4-a armv9.3-a, armv8.9-a
armv9.5-a armv9.4-a, cpa, lut, faminmax
armv9.6-a armv9.5-a, cmpbr, fprcvt, lsui, occmo, sve2p2
armv8-r armv8.4-a+nolor

Next: , Previous: , Up: AArch64-Dependent   [Contents][Index]