From 4f9fe856a25ab29345b90e7725509e9ee38a37be Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 17 Apr 2024 14:19:41 +0200 Subject: Adding upstream version 1.69.0+dfsg1. Signed-off-by: Daniel Baumann --- library/stdarch/crates/stdarch-verify/Cargo.toml | 2 +- library/stdarch/crates/stdarch-verify/src/lib.rs | 14 +++++++------- library/stdarch/crates/stdarch-verify/tests/arm.rs | 6 +++--- library/stdarch/crates/stdarch-verify/tests/mips.rs | 8 ++++---- .../stdarch/crates/stdarch-verify/tests/x86-intel.rs | 20 ++++++++++++++++---- 5 files changed, 31 insertions(+), 19 deletions(-) (limited to 'library/stdarch/crates/stdarch-verify') diff --git a/library/stdarch/crates/stdarch-verify/Cargo.toml b/library/stdarch/crates/stdarch-verify/Cargo.toml index 6362e3d57..56548fd08 100644 --- a/library/stdarch/crates/stdarch-verify/Cargo.toml +++ b/library/stdarch/crates/stdarch-verify/Cargo.toml @@ -2,7 +2,7 @@ name = "stdarch-verify" version = "0.1.0" authors = ["Alex Crichton "] -edition = "2018" +edition = "2021" [dependencies] proc-macro2 = "1.0" diff --git a/library/stdarch/crates/stdarch-verify/src/lib.rs b/library/stdarch/crates/stdarch-verify/src/lib.rs index 22108d26a..9b66137ba 100644 --- a/library/stdarch/crates/stdarch-verify/src/lib.rs +++ b/library/stdarch/crates/stdarch-verify/src/lib.rs @@ -85,20 +85,20 @@ fn functions(input: TokenStream, dirs: &[&str]) -> TokenStream { .iter() .map(|&(ref f, path)| { let name = &f.sig.ident; - // println!("{}", name); + // println!("{name}"); let mut arguments = Vec::new(); let mut const_arguments = Vec::new(); for input in f.sig.inputs.iter() { let ty = match *input { syn::FnArg::Typed(ref c) => &c.ty, - _ => panic!("invalid argument on {}", name), + _ => panic!("invalid argument on {name}"), }; arguments.push(to_type(ty)); } for generic in f.sig.generics.params.iter() { let ty = match *generic { syn::GenericParam::Const(ref c) => &c.ty, - _ => panic!("invalid generic argument on {}", name), + _ => panic!("invalid generic argument on {name}"), }; const_arguments.push(to_type(ty)); } @@ -144,12 +144,12 @@ fn functions(input: TokenStream, dirs: &[&str]) -> TokenStream { // strip leading underscore from fn name when building a test // _mm_foo -> mm_foo such that the test name is test_mm_foo. - let test_name_string = format!("{}", name); + let test_name_string = format!("{name}"); let mut test_name_id = test_name_string.as_str(); while test_name_id.starts_with('_') { test_name_id = &test_name_id[1..]; } - let has_test = tests.contains(&format!("test_{}", test_name_id)); + let has_test = tests.contains(&format!("test_{test_name_id}")); quote! { Function { @@ -167,7 +167,7 @@ fn functions(input: TokenStream, dirs: &[&str]) -> TokenStream { .collect::>(); let ret = quote! { #input: &[Function] = &[#(#functions),*]; }; - // println!("{}", ret); + // println!("{ret}"); ret.into() } @@ -336,7 +336,7 @@ fn to_type(t: &syn::Type) -> proc_macro2::TokenStream { "v4f32" => quote! { &v4f32 }, "v2f64" => quote! { &v2f64 }, - s => panic!("unsupported type: \"{}\"", s), + s => panic!("unsupported type: \"{s}\""), }, syn::Type::Ptr(syn::TypePtr { ref elem, diff --git a/library/stdarch/crates/stdarch-verify/tests/arm.rs b/library/stdarch/crates/stdarch-verify/tests/arm.rs index 6ce5ce05f..dd6720ef0 100644 --- a/library/stdarch/crates/stdarch-verify/tests/arm.rs +++ b/library/stdarch/crates/stdarch-verify/tests/arm.rs @@ -628,7 +628,7 @@ fn verify_all_signatures() { if let Err(e) = matches(rust, arm) { println!("failed to verify `{}`", rust.name); - println!(" * {}", e); + println!(" * {e}"); all_valid = false; } } @@ -801,7 +801,7 @@ fn parse_intrinsic(node: &Rc) -> Intrinsic { let instruction = match instruction { Some(s) => s.trim().to_lowercase(), - None => panic!("can't find instruction for `{}`", name), + None => panic!("can't find instruction for `{name}`"), }; Intrinsic { @@ -973,7 +973,7 @@ fn parse_ty_base(s: &str) -> &'static Type { "uint8x8x3_t" => &U8X8X3, "uint8x8x4_t" => &U8X8X4, - _ => panic!("failed to parse html type {:?}", s), + _ => panic!("failed to parse html type {s:?}"), } } diff --git a/library/stdarch/crates/stdarch-verify/tests/mips.rs b/library/stdarch/crates/stdarch-verify/tests/mips.rs index 1eb86dc29..365057b1d 100644 --- a/library/stdarch/crates/stdarch-verify/tests/mips.rs +++ b/library/stdarch/crates/stdarch-verify/tests/mips.rs @@ -125,7 +125,7 @@ impl<'a> From<&'a str> for MsaTy { "u64" => MsaTy::u64, "void" => MsaTy::Void, "void *" => MsaTy::MutVoidPtr, - v => panic!("unknown ty: \"{}\"", v), + v => panic!("unknown ty: \"{v}\""), } } } @@ -198,8 +198,8 @@ fn verify_all_signatures() { } use std::convert::TryFrom; - let intrinsic: MsaIntrinsic = TryFrom::try_from(line) - .unwrap_or_else(|_| panic!("failed to parse line: \"{}\"", line)); + let intrinsic: MsaIntrinsic = + TryFrom::try_from(line).unwrap_or_else(|_| panic!("failed to parse line: \"{line}\"")); assert!(!intrinsics.contains_key(&intrinsic.id)); intrinsics.insert(intrinsic.id.clone(), intrinsic); } @@ -253,7 +253,7 @@ fn verify_all_signatures() { if let Err(e) = matches(rust, mips) { println!("failed to verify `{}`", rust.name); - println!(" * {}", e); + println!(" * {e}"); all_valid = false; } } diff --git a/library/stdarch/crates/stdarch-verify/tests/x86-intel.rs b/library/stdarch/crates/stdarch-verify/tests/x86-intel.rs index 89494bfd2..cd9bd18ea 100644 --- a/library/stdarch/crates/stdarch-verify/tests/x86-intel.rs +++ b/library/stdarch/crates/stdarch-verify/tests/x86-intel.rs @@ -367,7 +367,7 @@ fn verify_all_signatures() { } println!("failed to verify `{}`", rust.name); for error in errors { - println!(" * {}", error); + println!(" * {error}"); } all_valid = false; } @@ -403,18 +403,18 @@ fn verify_all_signatures() { if PRINT_MISSING_LISTS || PRINT_MISSING_LISTS_MARKDOWN { for (k, v) in missing { if PRINT_MISSING_LISTS_MARKDOWN { - println!("\n
{:?}

\n", k); + println!("\n

{k:?}

\n"); for intel in v { let url = format!( "https://software.intel.com/sites/landingpage\ /IntrinsicsGuide/#text={}&expand=5236", intel.name ); - println!(" * [ ] [`{}`]({})", intel.name, url); + println!(" * [ ] [`{}`]({url})", intel.name); } println!("

\n"); } else { - println!("\n{:?}\n", k); + println!("\n{k:?}\n"); for intel in v { println!("\t{}", intel.name); } @@ -471,6 +471,18 @@ fn matches(rust: &Function, intel: &Intrinsic) -> Result<(), String> { continue; } + // Some CPUs support VAES/GFNI/VPCLMULQDQ without AVX512, even though + // the Intel documentation states that those instructions require + // AVX512VL. + if *cpuid == "AVX512VL" + && intel + .cpuid + .iter() + .any(|x| matches!(&**x, "VAES" | "GFNI" | "VPCLMULQDQ")) + { + continue; + } + let cpuid = cpuid .chars() .flat_map(|c| c.to_lowercase()) -- cgit v1.2.3