Skip to content

Commit c66e1d6

Browse files
authored
[llvm][AArch64] apple-m4 is armv9.2-a (#98267)
But since SVE and friends have been added to the default extensions list, and every CPU was opted into those extensions by default, we couldn't correctly announce its architecutral version to the backend. Additionally, we FEAT_MEC from llvm's "required" list for v9.0 to the optional list for v9.2, as the spec considers it optional, and M4 does not implement it. Similarly, fixes up several bugs w.r.t. FEAT_RME. As a drive-by, I noticed that saphira did not have an AArch64CPUTestParams entry, and thus added one.
1 parent dffa28f commit c66e1d6

26 files changed

+159
-107
lines changed

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

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,13 @@
2727
// CHECK-NEXT: FEAT_LRCPC2 Enable v8.4-A RCPC instructions with Immediate Offsets
2828
// CHECK-NEXT: FEAT_LSE Enable ARMv8.1 Large System Extension (LSE) atomic instructions
2929
// CHECK-NEXT: FEAT_LSE2 Enable ARMv8.4 Large System Extension 2 (LSE2) atomicity rules
30-
// CHECK-NEXT: FEAT_MEC Enable Memory Encryption Contexts Extension
3130
// CHECK-NEXT: FEAT_MPAM Enable v8.4-A Memory system Partitioning and Monitoring extension
3231
// CHECK-NEXT: FEAT_NV, FEAT_NV2 Enable v8.4-A Nested Virtualization Enchancement
3332
// CHECK-NEXT: FEAT_PAN Enables ARM v8.1 Privileged Access-Never extension
3433
// CHECK-NEXT: FEAT_PAN2 Enable v8.2 PAN s1e1R and s1e1W Variants
3534
// CHECK-NEXT: FEAT_PAuth Enable v8.3-A Pointer Authentication extension
3635
// CHECK-NEXT: FEAT_RAS, FEAT_RASv1p1 Enable ARMv8 Reliability, Availability and Serviceability Extensions
3736
// CHECK-NEXT: FEAT_RDM Enable ARMv8.1 Rounding Double Multiply Add/Subtract instructions
38-
// CHECK-NEXT: FEAT_RME Enable Realm Management Extension
3937
// CHECK-NEXT: FEAT_SB Enable v8.5 Speculation Barrier
4038
// CHECK-NEXT: FEAT_SEL2 Enable v8.4-A Secure Exception Level 2 extension
4139
// CHECK-NEXT: FEAT_SPECRES Enable v8.5a execution and data prediction invalidation instructions

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@
3232
// CHECK-NEXT: FEAT_LRCPC2 Enable v8.4-A RCPC instructions with Immediate Offsets
3333
// CHECK-NEXT: FEAT_LSE Enable ARMv8.1 Large System Extension (LSE) atomic instructions
3434
// CHECK-NEXT: FEAT_LSE2 Enable ARMv8.4 Large System Extension 2 (LSE2) atomicity rules
35-
// CHECK-NEXT: FEAT_MEC Enable Memory Encryption Contexts Extension
3635
// CHECK-NEXT: FEAT_MPAM Enable v8.4-A Memory system Partitioning and Monitoring extension
3736
// CHECK-NEXT: FEAT_NV, FEAT_NV2 Enable v8.4-A Nested Virtualization Enchancement
3837
// CHECK-NEXT: FEAT_PAN Enables ARM v8.1 Privileged Access-Never extension

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

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
// CHECK-NEXT: FEAT_LRCPC2 Enable v8.4-A RCPC instructions with Immediate Offsets
3131
// CHECK-NEXT: FEAT_LSE Enable ARMv8.1 Large System Extension (LSE) atomic instructions
3232
// CHECK-NEXT: FEAT_LSE2 Enable ARMv8.4 Large System Extension 2 (LSE2) atomicity rules
33-
// CHECK-NEXT: FEAT_MEC Enable Memory Encryption Contexts Extension
3433
// CHECK-NEXT: FEAT_MPAM Enable v8.4-A Memory system Partitioning and Monitoring extension
3534
// CHECK-NEXT: FEAT_MTE, FEAT_MTE2 Enable Memory Tagging Extension
3635
// CHECK-NEXT: FEAT_NV, FEAT_NV2 Enable v8.4-A Nested Virtualization Enchancement
@@ -40,7 +39,6 @@
4039
// CHECK-NEXT: FEAT_PMUv3 Enable Code Generation for ARMv8 PMUv3 Performance Monitors extension
4140
// CHECK-NEXT: FEAT_RAS, FEAT_RASv1p1 Enable ARMv8 Reliability, Availability and Serviceability Extensions
4241
// CHECK-NEXT: FEAT_RDM Enable ARMv8.1 Rounding Double Multiply Add/Subtract instructions
43-
// CHECK-NEXT: FEAT_RME Enable Realm Management Extension
4442
// CHECK-NEXT: FEAT_SB Enable v8.5 Speculation Barrier
4543
// CHECK-NEXT: FEAT_SEL2 Enable v8.4-A Secure Exception Level 2 extension
4644
// CHECK-NEXT: FEAT_SPECRES Enable v8.5a execution and data prediction invalidation instructions

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

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@
3434
// CHECK-NEXT: FEAT_LRCPC2 Enable v8.4-A RCPC instructions with Immediate Offsets
3535
// CHECK-NEXT: FEAT_LSE Enable ARMv8.1 Large System Extension (LSE) atomic instructions
3636
// CHECK-NEXT: FEAT_LSE2 Enable ARMv8.4 Large System Extension 2 (LSE2) atomicity rules
37-
// CHECK-NEXT: FEAT_MEC Enable Memory Encryption Contexts Extension
3837
// CHECK-NEXT: FEAT_MPAM Enable v8.4-A Memory system Partitioning and Monitoring extension
3938
// CHECK-NEXT: FEAT_MTE, FEAT_MTE2 Enable Memory Tagging Extension
4039
// CHECK-NEXT: FEAT_NV, FEAT_NV2 Enable v8.4-A Nested Virtualization Enchancement
@@ -44,7 +43,6 @@
4443
// CHECK-NEXT: FEAT_PMUv3 Enable Code Generation for ARMv8 PMUv3 Performance Monitors extension
4544
// CHECK-NEXT: FEAT_RAS, FEAT_RASv1p1 Enable ARMv8 Reliability, Availability and Serviceability Extensions
4645
// CHECK-NEXT: FEAT_RDM Enable ARMv8.1 Rounding Double Multiply Add/Subtract instructions
47-
// CHECK-NEXT: FEAT_RME Enable Realm Management Extension
4846
// CHECK-NEXT: FEAT_SB Enable v8.5 Speculation Barrier
4947
// CHECK-NEXT: FEAT_SEL2 Enable v8.4-A Secure Exception Level 2 extension
5048
// CHECK-NEXT: FEAT_SPECRES Enable v8.5a execution and data prediction invalidation instructions

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

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@
3434
// CHECK-NEXT: FEAT_LRCPC2 Enable v8.4-A RCPC instructions with Immediate Offsets
3535
// CHECK-NEXT: FEAT_LSE Enable ARMv8.1 Large System Extension (LSE) atomic instructions
3636
// CHECK-NEXT: FEAT_LSE2 Enable ARMv8.4 Large System Extension 2 (LSE2) atomicity rules
37-
// CHECK-NEXT: FEAT_MEC Enable Memory Encryption Contexts Extension
3837
// CHECK-NEXT: FEAT_MPAM Enable v8.4-A Memory system Partitioning and Monitoring extension
3938
// CHECK-NEXT: FEAT_MTE, FEAT_MTE2 Enable Memory Tagging Extension
4039
// CHECK-NEXT: FEAT_NV, FEAT_NV2 Enable v8.4-A Nested Virtualization Enchancement
@@ -44,7 +43,6 @@
4443
// CHECK-NEXT: FEAT_PMUv3 Enable Code Generation for ARMv8 PMUv3 Performance Monitors extension
4544
// CHECK-NEXT: FEAT_RAS, FEAT_RASv1p1 Enable ARMv8 Reliability, Availability and Serviceability Extensions
4645
// CHECK-NEXT: FEAT_RDM Enable ARMv8.1 Rounding Double Multiply Add/Subtract instructions
47-
// CHECK-NEXT: FEAT_RME Enable Realm Management Extension
4846
// CHECK-NEXT: FEAT_SB Enable v8.5 Speculation Barrier
4947
// CHECK-NEXT: FEAT_SEL2 Enable v8.4-A Secure Exception Level 2 extension
5048
// CHECK-NEXT: FEAT_SPECRES Enable v8.5a execution and data prediction invalidation instructions

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

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
// CHECK-NEXT: FEAT_LRCPC2 Enable v8.4-A RCPC instructions with Immediate Offsets
3131
// CHECK-NEXT: FEAT_LSE Enable ARMv8.1 Large System Extension (LSE) atomic instructions
3232
// CHECK-NEXT: FEAT_LSE2 Enable ARMv8.4 Large System Extension 2 (LSE2) atomicity rules
33-
// CHECK-NEXT: FEAT_MEC Enable Memory Encryption Contexts Extension
3433
// CHECK-NEXT: FEAT_MPAM Enable v8.4-A Memory system Partitioning and Monitoring extension
3534
// CHECK-NEXT: FEAT_MTE, FEAT_MTE2 Enable Memory Tagging Extension
3635
// CHECK-NEXT: FEAT_NV, FEAT_NV2 Enable v8.4-A Nested Virtualization Enchancement
@@ -40,7 +39,6 @@
4039
// CHECK-NEXT: FEAT_PMUv3 Enable Code Generation for ARMv8 PMUv3 Performance Monitors extension
4140
// CHECK-NEXT: FEAT_RAS, FEAT_RASv1p1 Enable ARMv8 Reliability, Availability and Serviceability Extensions
4241
// CHECK-NEXT: FEAT_RDM Enable ARMv8.1 Rounding Double Multiply Add/Subtract instructions
43-
// CHECK-NEXT: FEAT_RME Enable Realm Management Extension
4442
// CHECK-NEXT: FEAT_SB Enable v8.5 Speculation Barrier
4543
// CHECK-NEXT: FEAT_SEL2 Enable v8.4-A Secure Exception Level 2 extension
4644
// CHECK-NEXT: FEAT_SPECRES Enable v8.5a execution and data prediction invalidation instructions

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

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
// CHECK-NEXT: FEAT_LRCPC2 Enable v8.4-A RCPC instructions with Immediate Offsets
3131
// CHECK-NEXT: FEAT_LSE Enable ARMv8.1 Large System Extension (LSE) atomic instructions
3232
// CHECK-NEXT: FEAT_LSE2 Enable ARMv8.4 Large System Extension 2 (LSE2) atomicity rules
33-
// CHECK-NEXT: FEAT_MEC Enable Memory Encryption Contexts Extension
3433
// CHECK-NEXT: FEAT_MPAM Enable v8.4-A Memory system Partitioning and Monitoring extension
3534
// CHECK-NEXT: FEAT_MTE, FEAT_MTE2 Enable Memory Tagging Extension
3635
// CHECK-NEXT: FEAT_NV, FEAT_NV2 Enable v8.4-A Nested Virtualization Enchancement
@@ -40,7 +39,6 @@
4039
// CHECK-NEXT: FEAT_PMUv3 Enable Code Generation for ARMv8 PMUv3 Performance Monitors extension
4140
// CHECK-NEXT: FEAT_RAS, FEAT_RASv1p1 Enable ARMv8 Reliability, Availability and Serviceability Extensions
4241
// CHECK-NEXT: FEAT_RDM Enable ARMv8.1 Rounding Double Multiply Add/Subtract instructions
43-
// CHECK-NEXT: FEAT_RME Enable Realm Management Extension
4442
// CHECK-NEXT: FEAT_SB Enable v8.5 Speculation Barrier
4543
// CHECK-NEXT: FEAT_SEL2 Enable v8.4-A Secure Exception Level 2 extension
4644
// CHECK-NEXT: FEAT_SPE Enable Statistical Profiling extension

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

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@
3434
// CHECK-NEXT: FEAT_LRCPC2 Enable v8.4-A RCPC instructions with Immediate Offsets
3535
// CHECK-NEXT: FEAT_LSE Enable ARMv8.1 Large System Extension (LSE) atomic instructions
3636
// CHECK-NEXT: FEAT_LSE2 Enable ARMv8.4 Large System Extension 2 (LSE2) atomicity rules
37-
// CHECK-NEXT: FEAT_MEC Enable Memory Encryption Contexts Extension
3837
// CHECK-NEXT: FEAT_MPAM Enable v8.4-A Memory system Partitioning and Monitoring extension
3938
// CHECK-NEXT: FEAT_MTE, FEAT_MTE2 Enable Memory Tagging Extension
4039
// CHECK-NEXT: FEAT_NV, FEAT_NV2 Enable v8.4-A Nested Virtualization Enchancement
@@ -44,7 +43,6 @@
4443
// CHECK-NEXT: FEAT_PMUv3 Enable Code Generation for ARMv8 PMUv3 Performance Monitors extension
4544
// CHECK-NEXT: FEAT_RAS, FEAT_RASv1p1 Enable ARMv8 Reliability, Availability and Serviceability Extensions
4645
// CHECK-NEXT: FEAT_RDM Enable ARMv8.1 Rounding Double Multiply Add/Subtract instructions
47-
// CHECK-NEXT: FEAT_RME Enable Realm Management Extension
4846
// CHECK-NEXT: FEAT_SB Enable v8.5 Speculation Barrier
4947
// CHECK-NEXT: FEAT_SEL2 Enable v8.4-A Secure Exception Level 2 extension
5048
// CHECK-NEXT: FEAT_SPE Enable Statistical Profiling extension

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

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@
3434
// CHECK-NEXT: FEAT_LRCPC2 Enable v8.4-A RCPC instructions with Immediate Offsets
3535
// CHECK-NEXT: FEAT_LSE Enable ARMv8.1 Large System Extension (LSE) atomic instructions
3636
// CHECK-NEXT: FEAT_LSE2 Enable ARMv8.4 Large System Extension 2 (LSE2) atomicity rules
37-
// CHECK-NEXT: FEAT_MEC Enable Memory Encryption Contexts Extension
3837
// CHECK-NEXT: FEAT_MPAM Enable v8.4-A Memory system Partitioning and Monitoring extension
3938
// CHECK-NEXT: FEAT_MTE, FEAT_MTE2 Enable Memory Tagging Extension
4039
// CHECK-NEXT: FEAT_NV, FEAT_NV2 Enable v8.4-A Nested Virtualization Enchancement
@@ -44,7 +43,6 @@
4443
// CHECK-NEXT: FEAT_PMUv3 Enable Code Generation for ARMv8 PMUv3 Performance Monitors extension
4544
// CHECK-NEXT: FEAT_RAS, FEAT_RASv1p1 Enable ARMv8 Reliability, Availability and Serviceability Extensions
4645
// CHECK-NEXT: FEAT_RDM Enable ARMv8.1 Rounding Double Multiply Add/Subtract instructions
47-
// CHECK-NEXT: FEAT_RME Enable Realm Management Extension
4846
// CHECK-NEXT: FEAT_SB Enable v8.5 Speculation Barrier
4947
// CHECK-NEXT: FEAT_SEL2 Enable v8.4-A Secure Exception Level 2 extension
5048
// CHECK-NEXT: FEAT_SPE Enable Statistical Profiling extension

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

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@
3434
// CHECK-NEXT: FEAT_LRCPC2 Enable v8.4-A RCPC instructions with Immediate Offsets
3535
// CHECK-NEXT: FEAT_LSE Enable ARMv8.1 Large System Extension (LSE) atomic instructions
3636
// CHECK-NEXT: FEAT_LSE2 Enable ARMv8.4 Large System Extension 2 (LSE2) atomicity rules
37-
// CHECK-NEXT: FEAT_MEC Enable Memory Encryption Contexts Extension
3837
// CHECK-NEXT: FEAT_MPAM Enable v8.4-A Memory system Partitioning and Monitoring extension
3938
// CHECK-NEXT: FEAT_MTE, FEAT_MTE2 Enable Memory Tagging Extension
4039
// CHECK-NEXT: FEAT_NV, FEAT_NV2 Enable v8.4-A Nested Virtualization Enchancement
@@ -44,7 +43,6 @@
4443
// CHECK-NEXT: FEAT_PMUv3 Enable Code Generation for ARMv8 PMUv3 Performance Monitors extension
4544
// CHECK-NEXT: FEAT_RAS, FEAT_RASv1p1 Enable ARMv8 Reliability, Availability and Serviceability Extensions
4645
// CHECK-NEXT: FEAT_RDM Enable ARMv8.1 Rounding Double Multiply Add/Subtract instructions
47-
// CHECK-NEXT: FEAT_RME Enable Realm Management Extension
4846
// CHECK-NEXT: FEAT_SB Enable v8.5 Speculation Barrier
4947
// CHECK-NEXT: FEAT_SEL2 Enable v8.4-A Secure Exception Level 2 extension
5048
// CHECK-NEXT: FEAT_SPE Enable Statistical Profiling extension

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

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
// CHECK-NEXT: FEAT_LRCPC2 Enable v8.4-A RCPC instructions with Immediate Offsets
3131
// CHECK-NEXT: FEAT_LSE Enable ARMv8.1 Large System Extension (LSE) atomic instructions
3232
// CHECK-NEXT: FEAT_LSE2 Enable ARMv8.4 Large System Extension 2 (LSE2) atomicity rules
33-
// CHECK-NEXT: FEAT_MEC Enable Memory Encryption Contexts Extension
3433
// CHECK-NEXT: FEAT_MPAM Enable v8.4-A Memory system Partitioning and Monitoring extension
3534
// CHECK-NEXT: FEAT_MTE, FEAT_MTE2 Enable Memory Tagging Extension
3635
// CHECK-NEXT: FEAT_NV, FEAT_NV2 Enable v8.4-A Nested Virtualization Enchancement
@@ -40,7 +39,6 @@
4039
// CHECK-NEXT: FEAT_PMUv3 Enable Code Generation for ARMv8 PMUv3 Performance Monitors extension
4140
// CHECK-NEXT: FEAT_RAS, FEAT_RASv1p1 Enable ARMv8 Reliability, Availability and Serviceability Extensions
4241
// CHECK-NEXT: FEAT_RDM Enable ARMv8.1 Rounding Double Multiply Add/Subtract instructions
43-
// CHECK-NEXT: FEAT_RME Enable Realm Management Extension
4442
// CHECK-NEXT: FEAT_SB Enable v8.5 Speculation Barrier
4543
// CHECK-NEXT: FEAT_SEL2 Enable v8.4-A Secure Exception Level 2 extension
4644
// CHECK-NEXT: FEAT_SPECRES Enable v8.5a execution and data prediction invalidation instructions

0 commit comments

Comments
 (0)