Skip to content

Commit 86beef1

Browse files
amilendraGroverkss
authored andcommitted
[AArch64][v8.7-A] Fix inconsistency in SPE_EEF feature (llvm#115296)
The `SPE-EEF` system-register only feature introduced in Armv8.7-a adds support for an extra system register (`PMSNEVFR_EL1`) to the Statistical Profiling extension. However, `SPE-EEF` is gated even for Armv8.7-a and the `spe-eef` subtarget-feature is needed to enable it. This behavior is inconsistent with the implementation for other system-register only features as they can be used ungated under supported architectures. (e.g. HCX : Enable Armv8.7-A `HCRX_EL2` system register). GCC/Binutils too do not add command line flags for features that only enable system registers. Fix by enabling `SPE-EEF` unconditionally under v8.7-A and above.
1 parent bcf330c commit 86beef1

File tree

13 files changed

+17
-1
lines changed

13 files changed

+17
-1
lines changed

clang/test/Driver/print-enabled-extensions/aarch64-ampere1b.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
// CHECK-NEXT: FEAT_SHA3, FEAT_SHA512 Enable SHA512 and SHA3 support
5252
// CHECK-NEXT: FEAT_SM4, FEAT_SM3 Enable SM3 and SM4 support
5353
// CHECK-NEXT: FEAT_SPECRES Enable Armv8.5-A execution and data prediction invalidation instructions
54+
// CHECK-NEXT: FEAT_SPEv1p2 Enable extra register in the Statistical Profiling Extension
5455
// CHECK-NEXT: FEAT_SSBS, FEAT_SSBS2 Enable Speculative Store Bypass Safe bit
5556
// CHECK-NEXT: FEAT_TLBIOS, FEAT_TLBIRANGE Enable Armv8.4-A TLB Range and Maintenance instructions
5657
// CHECK-NEXT: FEAT_TRF Enable Armv8.4-A Trace extension

clang/test/Driver/print-enabled-extensions/aarch64-apple-m4.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
// CHECK-NEXT: FEAT_SME_F64F64 Enable Scalable Matrix Extension (SME) F64F64 instructions
5252
// CHECK-NEXT: FEAT_SME_I16I64 Enable Scalable Matrix Extension (SME) I16I64 instructions
5353
// CHECK-NEXT: FEAT_SPECRES Enable Armv8.5-A execution and data prediction invalidation instructions
54+
// CHECK-NEXT: FEAT_SPEv1p2 Enable extra register in the Statistical Profiling Extension
5455
// CHECK-NEXT: FEAT_TLBIOS, FEAT_TLBIRANGE Enable Armv8.4-A TLB Range and Maintenance instructions
5556
// CHECK-NEXT: FEAT_TRF Enable Armv8.4-A Trace extension
5657
// CHECK-NEXT: FEAT_UAO Enable Armv8.2-A UAO PState

clang/test/Driver/print-enabled-extensions/aarch64-armv8.7-a.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
// CHECK-NEXT: FEAT_SB Enable Armv8.5-A Speculation Barrier
4343
// CHECK-NEXT: FEAT_SEL2 Enable Armv8.4-A Secure Exception Level 2 extension
4444
// CHECK-NEXT: FEAT_SPECRES Enable Armv8.5-A execution and data prediction invalidation instructions
45+
// CHECK-NEXT: FEAT_SPEv1p2 Enable extra register in the Statistical Profiling Extension
4546
// CHECK-NEXT: FEAT_SSBS, FEAT_SSBS2 Enable Speculative Store Bypass Safe bit
4647
// CHECK-NEXT: FEAT_TLBIOS, FEAT_TLBIRANGE Enable Armv8.4-A TLB Range and Maintenance instructions
4748
// CHECK-NEXT: FEAT_TRBE Enable Trace Buffer Extension

clang/test/Driver/print-enabled-extensions/aarch64-armv8.8-a.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
// CHECK-NEXT: FEAT_SB Enable Armv8.5-A Speculation Barrier
4646
// CHECK-NEXT: FEAT_SEL2 Enable Armv8.4-A Secure Exception Level 2 extension
4747
// CHECK-NEXT: FEAT_SPECRES Enable Armv8.5-A execution and data prediction invalidation instructions
48+
// CHECK-NEXT: FEAT_SPEv1p2 Enable extra register in the Statistical Profiling Extension
4849
// CHECK-NEXT: FEAT_SSBS, FEAT_SSBS2 Enable Speculative Store Bypass Safe bit
4950
// CHECK-NEXT: FEAT_TLBIOS, FEAT_TLBIRANGE Enable Armv8.4-A TLB Range and Maintenance instructions
5051
// CHECK-NEXT: FEAT_TRBE Enable Trace Buffer Extension

clang/test/Driver/print-enabled-extensions/aarch64-armv8.9-a.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
// CHECK-NEXT: FEAT_SEL2 Enable Armv8.4-A Secure Exception Level 2 extension
5252
// CHECK-NEXT: FEAT_SPECRES Enable Armv8.5-A execution and data prediction invalidation instructions
5353
// CHECK-NEXT: FEAT_SPECRES2 Enable Speculation Restriction Instruction
54+
// CHECK-NEXT: FEAT_SPEv1p2 Enable extra register in the Statistical Profiling Extension
5455
// CHECK-NEXT: FEAT_SSBS, FEAT_SSBS2 Enable Speculative Store Bypass Safe bit
5556
// CHECK-NEXT: FEAT_TLBIOS, FEAT_TLBIRANGE Enable Armv8.4-A TLB Range and Maintenance instructions
5657
// CHECK-NEXT: FEAT_TRBE Enable Trace Buffer Extension

clang/test/Driver/print-enabled-extensions/aarch64-armv9.2-a.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
// CHECK-NEXT: FEAT_SB Enable Armv8.5-A Speculation Barrier
4646
// CHECK-NEXT: FEAT_SEL2 Enable Armv8.4-A Secure Exception Level 2 extension
4747
// CHECK-NEXT: FEAT_SPECRES Enable Armv8.5-A execution and data prediction invalidation instructions
48+
// CHECK-NEXT: FEAT_SPEv1p2 Enable extra register in the Statistical Profiling Extension
4849
// CHECK-NEXT: FEAT_SSBS, FEAT_SSBS2 Enable Speculative Store Bypass Safe bit
4950
// CHECK-NEXT: FEAT_SVE Enable Scalable Vector Extension (SVE) instructions
5051
// CHECK-NEXT: FEAT_SVE2 Enable Scalable Vector Extension 2 (SVE2) instructions

clang/test/Driver/print-enabled-extensions/aarch64-armv9.3-a.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
// CHECK-NEXT: FEAT_SB Enable Armv8.5-A Speculation Barrier
4949
// CHECK-NEXT: FEAT_SEL2 Enable Armv8.4-A Secure Exception Level 2 extension
5050
// CHECK-NEXT: FEAT_SPECRES Enable Armv8.5-A execution and data prediction invalidation instructions
51+
// CHECK-NEXT: FEAT_SPEv1p2 Enable extra register in the Statistical Profiling Extension
5152
// CHECK-NEXT: FEAT_SSBS, FEAT_SSBS2 Enable Speculative Store Bypass Safe bit
5253
// CHECK-NEXT: FEAT_SVE Enable Scalable Vector Extension (SVE) instructions
5354
// CHECK-NEXT: FEAT_SVE2 Enable Scalable Vector Extension 2 (SVE2) instructions

clang/test/Driver/print-enabled-extensions/aarch64-armv9.4-a.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454
// CHECK-NEXT: FEAT_SEL2 Enable Armv8.4-A Secure Exception Level 2 extension
5555
// CHECK-NEXT: FEAT_SPECRES Enable Armv8.5-A execution and data prediction invalidation instructions
5656
// CHECK-NEXT: FEAT_SPECRES2 Enable Speculation Restriction Instruction
57+
// CHECK-NEXT: FEAT_SPEv1p2 Enable extra register in the Statistical Profiling Extension
5758
// CHECK-NEXT: FEAT_SSBS, FEAT_SSBS2 Enable Speculative Store Bypass Safe bit
5859
// CHECK-NEXT: FEAT_SVE Enable Scalable Vector Extension (SVE) instructions
5960
// CHECK-NEXT: FEAT_SVE2 Enable Scalable Vector Extension 2 (SVE2) instructions

clang/test/Driver/print-enabled-extensions/aarch64-armv9.5-a.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@
5757
// CHECK-NEXT: FEAT_SEL2 Enable Armv8.4-A Secure Exception Level 2 extension
5858
// CHECK-NEXT: FEAT_SPECRES Enable Armv8.5-A execution and data prediction invalidation instructions
5959
// CHECK-NEXT: FEAT_SPECRES2 Enable Speculation Restriction Instruction
60+
// CHECK-NEXT: FEAT_SPEv1p2 Enable extra register in the Statistical Profiling Extension
6061
// CHECK-NEXT: FEAT_SSBS, FEAT_SSBS2 Enable Speculative Store Bypass Safe bit
6162
// CHECK-NEXT: FEAT_SVE Enable Scalable Vector Extension (SVE) instructions
6263
// CHECK-NEXT: FEAT_SVE2 Enable Scalable Vector Extension 2 (SVE2) instructions

clang/test/Driver/print-enabled-extensions/aarch64-cortex-a520.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
// CHECK-NEXT: FEAT_SB Enable Armv8.5-A Speculation Barrier
4747
// CHECK-NEXT: FEAT_SEL2 Enable Armv8.4-A Secure Exception Level 2 extension
4848
// CHECK-NEXT: FEAT_SPECRES Enable Armv8.5-A execution and data prediction invalidation instructions
49+
// CHECK-NEXT: FEAT_SPEv1p2 Enable extra register in the Statistical Profiling Extension
4950
// CHECK-NEXT: FEAT_SSBS, FEAT_SSBS2 Enable Speculative Store Bypass Safe bit
5051
// CHECK-NEXT: FEAT_SVE Enable Scalable Vector Extension (SVE) instructions
5152
// CHECK-NEXT: FEAT_SVE2 Enable Scalable Vector Extension 2 (SVE2) instructions

0 commit comments

Comments
 (0)