1
Fork 0

Allow actual AVX512-related feature names in the case of some misleading aliases

This commit is contained in:
Caleb Zulawski 2022-10-29 23:36:47 -04:00
parent cd128880b1
commit d7152f8eec
3 changed files with 10 additions and 4 deletions

View file

@ -315,10 +315,10 @@ pub fn target_features(sess: &Session, allow_unstable: bool) -> Vec<Symbol> {
false false
} }
/* /*
adx, aes, avx, avx2, avx512bf16, avx512bitalg, avx512bw, avx512cd, avx512dq, avx512er, avx512f, avx512gfni, adx, aes, avx, avx2, avx512bf16, avx512bitalg, avx512bw, avx512cd, avx512dq, avx512er, avx512f, avx512ifma,
avx512ifma, avx512pf, avx512vaes, avx512vbmi, avx512vbmi2, avx512vl, avx512vnni, avx512vp2intersect, avx512vpclmulqdq, avx512pf, avx512vbmi, avx512vbmi2, avx512vl, avx512vnni, avx512vp2intersect, avx512vpopcntdq,
avx512vpopcntdq, bmi1, bmi2, cmpxchg16b, ermsb, f16c, fma, fxsr, lzcnt, movbe, pclmulqdq, popcnt, rdrand, rdseed, rtm, bmi1, bmi2, cmpxchg16b, ermsb, f16c, fma, fxsr, gfni, lzcnt, movbe, pclmulqdq, popcnt, rdrand, rdseed, rtm,
sha, sse, sse2, sse3, sse4.1, sse4.2, sse4a, ssse3, tbm, xsave, xsavec, xsaveopt, xsaves sha, sse, sse2, sse3, sse4.1, sse4.2, sse4a, ssse3, tbm, vaes, vpclmulqdq, xsave, xsavec, xsaveopt, xsaves
*/ */
//false //false
}) })

View file

@ -163,6 +163,9 @@ pub fn to_llvm_features<'a>(sess: &Session, s: &'a str) -> SmallVec<[&'a str; 2]
("x86", "rdrand") => smallvec!["rdrnd"], ("x86", "rdrand") => smallvec!["rdrnd"],
("x86", "bmi1") => smallvec!["bmi"], ("x86", "bmi1") => smallvec!["bmi"],
("x86", "cmpxchg16b") => smallvec!["cx16"], ("x86", "cmpxchg16b") => smallvec!["cx16"],
// FIXME: These aliases are misleading, and should be removed before avx512_target_feature is
// stabilized. For now, they must be kept at a minimum because std::arch uses them.
// rust#100752
("x86", "avx512vaes") => smallvec!["vaes"], ("x86", "avx512vaes") => smallvec!["vaes"],
("x86", "avx512gfni") => smallvec!["gfni"], ("x86", "avx512gfni") => smallvec!["gfni"],
("x86", "avx512vpclmulqdq") => smallvec!["vpclmulqdq"], ("x86", "avx512vpclmulqdq") => smallvec!["vpclmulqdq"],

View file

@ -179,6 +179,7 @@ const X86_ALLOWED_FEATURES: &[(&str, Option<Symbol>)] = &[
("f16c", Some(sym::f16c_target_feature)), ("f16c", Some(sym::f16c_target_feature)),
("fma", None), ("fma", None),
("fxsr", None), ("fxsr", None),
("gfni", Some(sym::avx512_target_feature)),
("lzcnt", None), ("lzcnt", None),
("movbe", Some(sym::movbe_target_feature)), ("movbe", Some(sym::movbe_target_feature)),
("pclmulqdq", None), ("pclmulqdq", None),
@ -195,6 +196,8 @@ const X86_ALLOWED_FEATURES: &[(&str, Option<Symbol>)] = &[
("sse4a", Some(sym::sse4a_target_feature)), ("sse4a", Some(sym::sse4a_target_feature)),
("ssse3", None), ("ssse3", None),
("tbm", Some(sym::tbm_target_feature)), ("tbm", Some(sym::tbm_target_feature)),
("vaes", Some(sym::avx512_target_feature)),
("vpclmulqdq", Some(sym::avx512_target_feature)),
("xsave", None), ("xsave", None),
("xsavec", None), ("xsavec", None),
("xsaveopt", None), ("xsaveopt", None),