Skip to content

Commit cdd98bb

Browse files
committed
Update aarch64 target_feature list for LLVM 12.
1 parent 473eaa4 commit cdd98bb

File tree

2 files changed

+18
-8
lines changed

2 files changed

+18
-8
lines changed

compiler/rustc_codegen_llvm/src/llvm_util.rs

+1
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,7 @@ pub fn to_llvm_feature<'a>(sess: &Session, s: &'a str) -> Vec<&'a str> {
180180
("aarch64", "dpb2") => vec!["ccdp"],
181181
("aarch64", "frintts") => vec!["fptoint"],
182182
("aarch64", "fcma") => vec!["complxnum"],
183+
("aarch64", "pmuv3") => vec!["perfmon"],
183184
(_, s) => vec![s],
184185
}
185186
}

compiler/rustc_codegen_ssa/src/target_features.rs

+17-8
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ const ARM_ALLOWED_FEATURES: &[(&str, Option<Symbol>)] = &[
3636
("thumb-mode", Some(sym::arm_target_feature)),
3737
];
3838

39-
// Commented features are not available in LLVM 10.0, or have since been renamed
4039
const AARCH64_ALLOWED_FEATURES: &[(&str, Option<Symbol>)] = &[
4140
// FEAT_AdvSimd
4241
("neon", Some(sym::aarch64_target_feature)),
@@ -67,13 +66,13 @@ const AARCH64_ALLOWED_FEATURES: &[(&str, Option<Symbol>)] = &[
6766
// FEAT_DIT
6867
("dit", Some(sym::aarch64_target_feature)),
6968
// FEAT_FLAGM
70-
// ("flagm", Some(sym::aarch64_target_feature)),
69+
("flagm", Some(sym::aarch64_target_feature)),
7170
// FEAT_SSBS
7271
("ssbs", Some(sym::aarch64_target_feature)),
7372
// FEAT_SB
7473
("sb", Some(sym::aarch64_target_feature)),
7574
// FEAT_PAUTH
76-
// ("pauth", Some(sym::aarch64_target_feature)),
75+
("pauth", Some(sym::aarch64_target_feature)),
7776
// FEAT_DPB
7877
("dpb", Some(sym::aarch64_target_feature)),
7978
// FEAT_DPB2
@@ -93,11 +92,11 @@ const AARCH64_ALLOWED_FEATURES: &[(&str, Option<Symbol>)] = &[
9392
// FEAT_I8MM
9493
("i8mm", Some(sym::aarch64_target_feature)),
9594
// FEAT_F32MM
96-
// ("f32mm", Some(sym::aarch64_target_feature)),
95+
("f32mm", Some(sym::aarch64_target_feature)),
9796
// FEAT_F64MM
98-
// ("f64mm", Some(sym::aarch64_target_feature)),
97+
("f64mm", Some(sym::aarch64_target_feature)),
9998
// FEAT_BF16
100-
// ("bf16", Some(sym::aarch64_target_feature)),
99+
("bf16", Some(sym::aarch64_target_feature)),
101100
// FEAT_RAND
102101
("rand", Some(sym::aarch64_target_feature)),
103102
// FEAT_BTI
@@ -116,13 +115,23 @@ const AARCH64_ALLOWED_FEATURES: &[(&str, Option<Symbol>)] = &[
116115
("sha3", Some(sym::aarch64_target_feature)),
117116
// FEAT_SM3 & FEAT_SM4
118117
("sm4", Some(sym::aarch64_target_feature)),
118+
// FEAT_PAN
119+
("pan", Some(sym::aarch64_target_feature)),
120+
// FEAT_LOR
121+
("lor", Some(sym::aarch64_target_feature)),
122+
// FEAT_VHE
123+
("vh", Some(sym::aarch64_target_feature)),
124+
// FEAT_PMUv3
125+
("pmuv3", Some(sym::aarch64_target_feature)),
126+
// FEAT_SPE
127+
("spe", Some(sym::aarch64_target_feature)),
119128
("v8.1a", Some(sym::aarch64_target_feature)),
120129
("v8.2a", Some(sym::aarch64_target_feature)),
121130
("v8.3a", Some(sym::aarch64_target_feature)),
122131
("v8.4a", Some(sym::aarch64_target_feature)),
123132
("v8.5a", Some(sym::aarch64_target_feature)),
124-
// ("v8.6a", Some(sym::aarch64_target_feature)),
125-
// ("v8.7a", Some(sym::aarch64_target_feature)),
133+
("v8.6a", Some(sym::aarch64_target_feature)),
134+
("v8.7a", Some(sym::aarch64_target_feature)),
126135
];
127136

128137
const X86_ALLOWED_FEATURES: &[(&str, Option<Symbol>)] = &[

0 commit comments

Comments
 (0)