Rollup merge of #90537 - adamgemmell:dev/aarch64-target-feature, r=Amanieu

Update aarch64 `target_feature` list for LLVM 12.

Many of these feature are now available on all valid LLVM versions.

I've also added a few new ones to the list.

r? `@Amanieu`
This commit is contained in:
Yuki Okushi 2021-11-05 10:32:42 +09:00 committed by GitHub
commit a5802d0731
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 18 additions and 8 deletions

View File

@ -180,6 +180,7 @@ pub fn to_llvm_feature<'a>(sess: &Session, s: &'a str) -> Vec<&'a str> {
("aarch64", "dpb2") => vec!["ccdp"],
("aarch64", "frintts") => vec!["fptoint"],
("aarch64", "fcma") => vec!["complxnum"],
("aarch64", "pmuv3") => vec!["perfmon"],
(_, s) => vec![s],
}
}

View File

@ -36,7 +36,6 @@
("thumb-mode", Some(sym::arm_target_feature)),
];
// Commented features are not available in LLVM 10.0, or have since been renamed
const AARCH64_ALLOWED_FEATURES: &[(&str, Option<Symbol>)] = &[
// FEAT_AdvSimd
("neon", Some(sym::aarch64_target_feature)),
@ -67,13 +66,13 @@
// FEAT_DIT
("dit", Some(sym::aarch64_target_feature)),
// FEAT_FLAGM
// ("flagm", Some(sym::aarch64_target_feature)),
("flagm", Some(sym::aarch64_target_feature)),
// FEAT_SSBS
("ssbs", Some(sym::aarch64_target_feature)),
// FEAT_SB
("sb", Some(sym::aarch64_target_feature)),
// FEAT_PAUTH
// ("pauth", Some(sym::aarch64_target_feature)),
("pauth", Some(sym::aarch64_target_feature)),
// FEAT_DPB
("dpb", Some(sym::aarch64_target_feature)),
// FEAT_DPB2
@ -93,11 +92,11 @@
// FEAT_I8MM
("i8mm", Some(sym::aarch64_target_feature)),
// FEAT_F32MM
// ("f32mm", Some(sym::aarch64_target_feature)),
("f32mm", Some(sym::aarch64_target_feature)),
// FEAT_F64MM
// ("f64mm", Some(sym::aarch64_target_feature)),
("f64mm", Some(sym::aarch64_target_feature)),
// FEAT_BF16
// ("bf16", Some(sym::aarch64_target_feature)),
("bf16", Some(sym::aarch64_target_feature)),
// FEAT_RAND
("rand", Some(sym::aarch64_target_feature)),
// FEAT_BTI
@ -116,13 +115,23 @@
("sha3", Some(sym::aarch64_target_feature)),
// FEAT_SM3 & FEAT_SM4
("sm4", Some(sym::aarch64_target_feature)),
// FEAT_PAN
("pan", Some(sym::aarch64_target_feature)),
// FEAT_LOR
("lor", Some(sym::aarch64_target_feature)),
// FEAT_VHE
("vh", Some(sym::aarch64_target_feature)),
// FEAT_PMUv3
("pmuv3", Some(sym::aarch64_target_feature)),
// FEAT_SPE
("spe", Some(sym::aarch64_target_feature)),
("v8.1a", Some(sym::aarch64_target_feature)),
("v8.2a", Some(sym::aarch64_target_feature)),
("v8.3a", Some(sym::aarch64_target_feature)),
("v8.4a", Some(sym::aarch64_target_feature)),
("v8.5a", Some(sym::aarch64_target_feature)),
// ("v8.6a", Some(sym::aarch64_target_feature)),
// ("v8.7a", Some(sym::aarch64_target_feature)),
("v8.6a", Some(sym::aarch64_target_feature)),
("v8.7a", Some(sym::aarch64_target_feature)),
];
const X86_ALLOWED_FEATURES: &[(&str, Option<Symbol>)] = &[