The tables on this page list all the features that are in A-profile architecture.

2021 Architecture Extensions

Feature Name Short description
FEAT_CMOW Control for cache maintenance permission
FEAT_CONSTPACFIELD PAC Algorithm enhancement
FEAT_Debugv8p8 Debug v8.8
FEAT_HBC Hinted conditional branches
FEAT_HPMN0 Setting of MDCR_EL2.HPMN to zero
FEAT_NMI, FEAT_GICv3_NMI Non-maskable Interrupts
FEAT_MOPS Standardization of memory operations
FEAT_PACQARMA3 Pointer authentication - QARMA3 algorithm
FEAT_PMUv3_TH Event counting threshold
FEAT_PMUv3p8 Armv8.8 PMU Extensions
FEAT_RNG_TRAP Trapping support for RNDR and RNDRRS
FEAT_SPEv1p3 Armv8.8 Statistical Profiling Extensions
FEAT_BRBEv1p1 Branch Record Buffer Extensions version 1.1

2020 Architecture Extensions

Feature Name Short description
FEAT_AFP Alternate floating-point behavior
FEAT_HCX Support for the HCRX_EL2 register
FEAT_LPA2 Larger physical address for 4KB and 16KB translation granules
FEAT_LS64 Support for 64 byte loads/stores without return
FEAT_LS64_V Support for 64-byte stores with return
FEAT_LS64_ACCDATA Support for 64-byte EL0 stores with return
FEAT_MTE3 MTE Asymmetric Fault Handling
FEAT_PMUv3p7 Armv8.7 PMU Extensions
FEAT_RPRES Increased precision of Reciprocal Estimate and Reciprocal Square Root Estimate
FEAT_RME Realm Management Extension
FEAT_SPEv1p2 Armv8.7 SPE
FEAT_WFxT WFE and WFI instructions with timeout
FEAT_WFxT2 WFE and WFI instructions with timeout version 2
FEAT_XS XS attribute
FEAT_BRBE Branch Record Buffer Extensions

Features introduced prior to 2020

Prior to June 2020, features names did not follow the FEAT_ convention. The table below lists old (ARMv8.x-) and new feature (FEAT_) names. Note that some names have been split into two; for example, ARMv8.0-AES is split into AES and PMULL.

Old name New name Short description Comments
ARMv8.0-AdvSIMD FEAT_AdvSIMD Advanced SIMD Extension
ARMv8.0-AES FEAT_AES Advanced SIMD AES instructions
ARMv8.0-AES FEAT_PMULL Advanced SIMD PMULL instructions ARMv8.0-AES is split into AES and PMULL
ARMv8.0-CSV2 FEAT_CSV2 Cache Speculation Variant 2
- FEAT_CSV2_1p1 Cache Speculation Variant 2 version 1.1
- FEAT_CSV2_1p2 Cache Speculation Variant 2 version 1.2
ARMv8.0-CSV2_2 FEAT_CSV2 Cache Speculation Variant 2 version 2
ARMv8.0-CSV3 FEAT_CSV3 Cache Speculation Variant 3
ARMv8.0-DGH FEAT_DGH Data Gathering Hint
ARMv8.0-DoubleLock FEAT_DoubleLock Double Lock
ARMv8.0-ETS FEAT_ETS Enhanced Translation Synchronization
ARMv8.0-FP FEAT_FP Floating point extension
- FEAT_IVIPT The IVIPT Extension
ARMv8.0-PCSample FEAT_PCSRv8 PC Sample-base Profiling extension (not EL3 and EL2)
ARMv8.0-PredInv FEAT_SPECRES Speculation restriction instructions
RAS FEAT_RAS Reliability, Availability, and Serviceability (RAS) Extension
ARMv8.0-SB FEAT_SB Speculation barrier
ARMv8.0-SHA FEAT_SHA1 Advanced SIMD SHA1 instructions
ARMv8.0-SHA FEAT_SHA256 Advanced SIMD SHA256 instructions Split ARMv8.2-SHA into SHA-256, SHA-512 and SHA-3
ARMv8.0-SSBS FEAT_SSBS Speculative Store Bypass Safe Instruction ARMv8.0-SSBS is split into SSBS and SSBS2
ARMv8.0-SSBS FEAT_SSBS2 MRS and MSR instructions for SSBS ARMv8.0-SSBS is split into SSBS and SSBS2
- FEAT_CRC32 CRC32 instructions
- FEAT_nTLBPA No intermediate caching by output address in TLB
ARMv8.1-Debug FEAT_Debugv8p1 Debug with VHE
ARMv8.1-HPD FEAT_HPDS Hierarchical permission disables in translation tables
ARMv8.1-LOR FEAT_LOR Limited ordering regions
ARMv8.1-LSE FEAT_LSE Large System Extensions
ARMv8.1-PAN FEAT_PAN Privileged access-never
ARMv8.1-PMU FEAT_PMUv3p1 PMU extensions version 3.1
ARMv8.1-RDMA FEAT_RDM Rounding double multiply accumulate
ARMv8.1-TTHM FEAT_HAFDBS Hardware updates to access flag and dirty state in translation tables
ARMv8.1-VHE FEAT_VHE Virtualization Host Extensions
ARMv8.1-VMID16 FEAT_VMID16 16-bit VMID
ARMv8.2-AA32BF16 FEAT_AA32BF16 AArch32 BFloat16 instructions
ARMv8.2-AA32HPD FEAT_AA32HPD AArch32 Hierarchical permission disables
ARMv8.2-AA32I8MM FEAT_AA32I8MM AArch32 Int8 Matrix Multiplication
ARMv8.2-ATS1E1 FEAT_PAN2 AT S1E1R and AT S1E1W instruction variants for PAN
ARMv8.2-BF16 FEAT_BF16 AARch64 BFloat16 instructions
ARMv8.2-DCPoP FEAT_DPB DC CVAP instruction
ARMv8.2-Debug FEAT_Debugv8p2 ARMv8.2 Debug
ARMv8.2-DotProd FEAT_DotProd2 Advanced SIMD Int8 dot product instructions
ARMv8.2-EVT FEAT_EVT Enhanced Virtualization Traps
ARMv8.2-F32MM FEAT_F32MM SVE single-precision floating-point matrix multiply instruction
ARMv8.2-F64MM FEAT_F64MM SVE double-precision floating-point matrix multiply instruction
ARMv8.2-FHM FEAT_FHM Half-precision floating-point FMLAL instructions
ARMv8.2-FP16 FEAT_FP16 Half-precision floating-point data processing
ARMv8.2-I8MM FEAT_I8MM Int8 Matrix Multiplication
ARMv8.2-IESB FEAT_IESB Implicit Error synchronization event
ARMv8.2-LPA FEAT_LPA Large PA and IPA support
ARMv8.2-LSMAOC FEAT_LSMAOC Load/Store instruction multiple atomicity and ordering controls
ARMv8.2-LVA FEAT_LVA Large VA support
MPAM FEAT_MPAM Memory Partitioning and Monitoring
ARMv8.2-PCSample FEAT_PCSRv8p2 PC Sample-based profiling version 8.2
ARMv8.2-SHA FEAT_SHA3 Advanced SIMD EOR3, RAX1, XAR, and BCAX instructions Split ARMv8.2-SHA into SHA-256, SHA-512 and SHA-3
ARMv8.2-SHA FEAT_SHA512 Advanced SIMD SHA512 instructions Split ARMv8.2-SHA into SHA-256, SHA-512 and SHA-3
ARMv8.2-SM FEAT_SM3 Advanced SIMD SM3 instructions Split into SM3 and SM4
ARMv8.2-SM FEAT_SM4 Advanced SIMD SM4 instructions Split into SM3 and SM4
SPE FEAT_SPE Statistical Profiling Extension
SVE FEAT_SVE Scalable Vector Extension
ARMv8.2-TTCNP FEAT_TTCNP Common not private translations
ARMv8.2-TTPBHA FEAT_HPDS2 Heirarchical permission disables in translation tables 2
ARMv8.2-TTS2UXN FEAT_XNX Execute-never control distinction by Exception level at stage 2
ARMv8.2-UAO FEAT_UAO Unprivileged Access Override control
ARMv8.2-VPIPT FEAT_VPIPT VMID-aware PIPT instruction cache
ARMv8.3-CCIDX FEAT_CCIDX Extended cache index
ARMv8.3-CompNum FEAT_FCMA Floating-point FCMLA and FCADD instructions
ARMv8.3-DoPD FEAT_DoPD Debug over Powerdown
- FEAT_EPAC Enhanced Pointer authentication
ARMv8.3-FPAC FEAT_FPAC Faulting on pointer authentication instructions
- FEAT_FPACCOMBINE Faulting on combined pointer authentication instructions
ARMv8.3-JSConv FEAT_JSCVT JavaScript FJCVTS conversion instruction
ARMv8.3-RCpc FEAT_LRCPC Load-acquire RCpc instructions
ARMv8.3-NV FEAT_NV Nested virtualization
- FEAT_PACQARMA5 Pointer authentication - QARMA5 algorithm
- FEAT_PACIMP Pointer authentication - IMPLEMENTATION DEFINED algorithm
ARMv8.3-TPAuth FEAT_PAuth Pointer authentication
ARMv8.3-PAuth2 FEAT_PAuth2 Enhancements to pointer authentication
ARMv8.3-SPE FEAT_SPEv1p1 Statistical Profiling Extensions version 1.1
AMUv1 FEAT_AMUv1 Activity Monitors Extension
ARMv8.4-CNTSC FEAT_CNTSC Generic Counter Scaling
ARMv8.4-Debug FEAT_Debugv8p4 Debug relaxations and extensions version 8.4
ARMv8.4-DFE FEAT_DoubleFault Double Fault Extension
ARMv8.4-DIT FEAT_DIT Data Independent Timing instructions
ARMv8.4-CondM FEAT_FlagM Condition flag manipulation
ARMv8.4-IDST FEAT_IDST ID space trap handling
ARMv8.4-RCpc FEAT_LRCPC2 Load-acquire RCpc instructions version 2
ARMv8.4-LSE FEAT_LSE2 Large System Extensions version 2
ARMv8.4-NV FEAT_NV2 Enhanced support for nested virtualization
ARMv8.4-PMU FEAT_PMUv3p4 PMU extension version 3.4
ARMv8.4-RAS FEAT_RASv1p1 Reliability, Availability, and Serviceability (RAS) Extension version 1.1
ARMv8.4-S2FWB FEAT_S2FWB Stage 2 forced write-back
ARMv8.4-SecEL2 FEAT_SEL2 Secure EL2
ARMv8.4-TLBI FEAT_TLBIOS TLB invalidate outer-shared instructions Split into TLBIOS and TLBIRANGE
ARMv8.4-TLBI FEAT_TLBIRANGE TLB range invalidate range instructions Split into TLBIOS and TLBIRANGE
ARMv8.4-Trace FEAT_TRF Self hosted Trace Extensions
ARMv8.4-TTL FEAT_TTL Translation Table Level
ARMv8.4-TTRem FEAT_BBM Translation table break before make levels
ARMv8.4-TTST FEAT_TTST Small translation tables
ARMv8.5-BTI FEAT_BTI Branch target identification
ARMv8.5-CondM FEAT_FlagM2 Condition flag manipulation version 2
ARMv8.5-CSEH FEAT_ExS Disabling context synchronizing exception entry and exit
ARMv8.5-E0PD FEAT_E0PD Preventing EL0 access to halves of address maps
ARMv8.5-GTG FEAT_GTG Guest translation granule size
ARMv8.5-MemTag FEAT_MTE Instruction-only Memory Tagging Extension
ARMv8.5-MemTag FEAT_MTE2 Full Memory Tagging Extension
ARMv8.5-PMU FEAT_PMUv3p5 PMU Extension version 3.5
ARMv8.5-RNG FEAT_RNG Random number generator
ARMv8.6-AMU FEAT_AMUv1p1 Activity Monitors Extension version 1.1
ARMv8.6-ECV FEAT_ECV Enhanced counter virtualization
ARMv8.6-FGT FEAT_FGT Fine Grain Traps
ARMv8.6-MPAM FEAT_MPAMv0p1 Memory Partitioning and Monitoring version 0.1
ARMv8.6-MPAM FEAT_MPAMv1p1 Memory Partitioning and Monitoring version1.1
ARMv8.6-MTPMU FEAT_MTPMU Multi-threaded PMU Extensions
ARMv8.6-TWED FEAT_TWED Delayed trapping of WFE
ETMv4 FEAT_ETMv4 Embedded Trace Macrocell version4
ETMv4.1 FEAT_ETMv4p1 Embedded Trace Macrocell version 4.1
ETMv4.2 FEAT_ETMv4p2 Embedded Trace Macrocell version 4.2
ETMv4.3 FEAT_ETMv4p3 Embedded Trace Macrocell version 4.3
ETMv4.4 FEAT_ETMv4p4 Embedded Trace Macrocell version 4.3
ETMv4.5 FEAT_ETMv4p5 Embedded Trace Macrocell version 4.4
ETMv4.6 FEAT_ETMv4p6 Embedded Trace Macrocell version 4.5
GICv3 FEAT_GICv3 Generic Interrupt Controller version 3
GICv3.1 FEAT_GICv3p1 Generic Interrupt Controller version 3.1
- FEAT_GICv3_TDIR Trapping Non-secure EL1 writes to ICV_DIR
GICv4 FEAT_GICv4 Generic Interrupt Controller version 4
GICv4.1 FEAT_GICv4p1 Generic Interrupt Controller version 4.1
PMUv3 FEAT_PMUv3 PMU extension version 3
ETE FEAT_ETE Embedded Trace Extension
ETEv1.1 FEAT_ETEv1p1 Embedded Trace Extension, version 1.1
SVE2 FEAT_SVE2 SVE version 2
SVE2-AES FEAT_SVE_PMULL128 SVE PMULL instructions SVE2-AES is split into AES and PMULL support
SVE2-BitPerm FEAT_SVE_BitPerm SVE Bit Permute
SVE2-SHA3 FEAT_SVE_SHA3 SVE SHA-3 instructions
SVE2-SM4 FEAT_SVE_SM4 SVE SM4 instructions
TME FEAT_TME Transactional Memory Extension
TRBE FEAT_TRBE Trace Buffer Extension
- FEAT_SME Scalable Matrix Extension