From 5ac22333329a1bc8ff0cf35dc0a60ac93564d0e6 Mon Sep 17 00:00:00 2001 From: Madhav Madhusoodanan Date: Tue, 4 Nov 2025 19:54:11 +0530 Subject: [PATCH 1/9] feat: configure test-files to run all intrinsics in the same process --- crates/intrinsic-test/src/common/gen_c.rs | 16 ++++------------ crates/intrinsic-test/src/common/gen_rust.rs | 12 +++--------- 2 files changed, 7 insertions(+), 21 deletions(-) diff --git a/crates/intrinsic-test/src/common/gen_c.rs b/crates/intrinsic-test/src/common/gen_c.rs index 04741e4f80..30f359a27e 100644 --- a/crates/intrinsic-test/src/common/gen_c.rs +++ b/crates/intrinsic-test/src/common/gen_c.rs @@ -147,22 +147,14 @@ pub fn write_main_cpp<'a>( } writeln!(w, "int main(int argc, char **argv) {{")?; - writeln!(w, " std::string intrinsic_name = argv[1];")?; - - writeln!(w, " if (false) {{")?; for intrinsic in intrinsics { - writeln!(w, " }} else if (intrinsic_name == \"{intrinsic}\") {{")?; - writeln!(w, " return run_{intrinsic}();")?; + writeln!(w, " std::cout << \"############\" << std::endl;")?; + writeln!(w, " std::cout << \"{intrinsic}\" << std::endl;")?; + writeln!(w, " run_{intrinsic}();\n")?; } - writeln!(w, " }} else {{")?; - writeln!( - w, - " std::cerr << \"Unknown command: \" << intrinsic_name << \"\\n\";" - )?; - writeln!(w, " return -1;")?; - writeln!(w, " }}")?; + writeln!(w, " return 0;")?; writeln!(w, "}}")?; diff --git a/crates/intrinsic-test/src/common/gen_rust.rs b/crates/intrinsic-test/src/common/gen_rust.rs index c8d815e46e..afc6ca4556 100644 --- a/crates/intrinsic-test/src/common/gen_rust.rs +++ b/crates/intrinsic-test/src/common/gen_rust.rs @@ -86,18 +86,12 @@ pub fn write_main_rs<'a>( writeln!(w, "fn main() {{")?; - writeln!(w, " match std::env::args().nth(1).unwrap().as_str() {{")?; - for binary in intrinsics { - writeln!(w, " \"{binary}\" => run_{binary}(),")?; + writeln!(w, " println!(\"############\");")?; + writeln!(w, " println!(\"{binary}\");")?; + writeln!(w, " run_{binary}();\n")?; } - writeln!( - w, - " other => panic!(\"unknown intrinsic `{{}}`\", other)," - )?; - - writeln!(w, " }}")?; writeln!(w, "}}")?; Ok(()) From 3ccbb9473942b8c7cba17b02efa0b384ce01ba71 Mon Sep 17 00:00:00 2001 From: Madhav Madhusoodanan Date: Tue, 4 Nov 2025 21:54:56 +0530 Subject: [PATCH 2/9] feat: modified the compare function to check one huge output stream instead of len(intrinsic) output streams --- crates/intrinsic-test/src/common/compare.rs | 145 ++++++++++---------- 1 file changed, 72 insertions(+), 73 deletions(-) diff --git a/crates/intrinsic-test/src/common/compare.rs b/crates/intrinsic-test/src/common/compare.rs index c0459b743a..96a0bb94aa 100644 --- a/crates/intrinsic-test/src/common/compare.rs +++ b/crates/intrinsic-test/src/common/compare.rs @@ -1,6 +1,7 @@ use super::cli::FailureReason; +use itertools::Itertools; use rayon::prelude::*; -use std::process::Command; +use std::{collections::HashMap, process::Command}; fn runner_command(runner: &str) -> Command { let mut it = runner.split_whitespace(); @@ -11,85 +12,83 @@ fn runner_command(runner: &str) -> Command { } pub fn compare_outputs(intrinsic_name_list: &Vec, runner: &str, target: &str) -> bool { - let intrinsics = intrinsic_name_list - .par_iter() - .filter_map(|intrinsic_name| { - let c = runner_command(runner) - .arg("./intrinsic-test-programs") - .arg(intrinsic_name) - .current_dir("c_programs") - .output(); - - let rust = runner_command(runner) - .arg(format!("./target/{target}/release/intrinsic-test-programs")) - .arg(intrinsic_name) - .current_dir("rust_programs") - .output(); - - let (c, rust) = match (c, rust) { - (Ok(c), Ok(rust)) => (c, rust), - a => panic!("{a:#?}"), - }; - - if !c.status.success() { - error!( - "Failed to run C program for intrinsic `{intrinsic_name}`\nstdout: {stdout}\nstderr: {stderr}", - stdout = std::str::from_utf8(&c.stdout).unwrap_or(""), - stderr = std::str::from_utf8(&c.stderr).unwrap_or(""), - ); - return Some(FailureReason::RunC(intrinsic_name.clone())); - } - - if !rust.status.success() { - error!( - "Failed to run Rust program for intrinsic `{intrinsic_name}`\nstdout: {stdout}\nstderr: {stderr}", - stdout = std::str::from_utf8(&rust.stdout).unwrap_or(""), - stderr = std::str::from_utf8(&rust.stderr).unwrap_or(""), - ); - return Some(FailureReason::RunRust(intrinsic_name.clone())); - } + let c = runner_command(runner) + .arg("./intrinsic-test-programs") + .current_dir("c_programs") + .output(); - info!("Comparing intrinsic: {intrinsic_name}"); + let rust = runner_command(runner) + .arg(format!("./target/{target}/release/intrinsic-test-programs")) + .current_dir("rust_programs") + .output(); + + let (c, rust) = match (c, rust) { + (Ok(c), Ok(rust)) => (c, rust), + a => panic!("{a:#?}"), + }; + + if !c.status.success() { + error!( + "Failed to run C program.\nstdout: {stdout}\nstderr: {stderr}", + stdout = std::str::from_utf8(&c.stdout).unwrap_or(""), + stderr = std::str::from_utf8(&c.stderr).unwrap_or(""), + ); + } + + if !rust.status.success() { + error!( + "Failed to run Rust program.\nstdout: {stdout}\nstderr: {stderr}", + stdout = std::str::from_utf8(&rust.stdout).unwrap_or(""), + stderr = std::str::from_utf8(&rust.stderr).unwrap_or(""), + ); + } - let c = std::str::from_utf8(&c.stdout) - .unwrap() - .to_lowercase() - .replace("-nan", "nan"); - let rust = std::str::from_utf8(&rust.stdout) - .unwrap() - .to_lowercase() - .replace("-nan", "nan"); + let c = std::str::from_utf8(&c.stdout) + .unwrap() + .to_lowercase() + .replace("-nan", "nan"); + let rust = std::str::from_utf8(&rust.stdout) + .unwrap() + .to_lowercase() + .replace("-nan", "nan"); + + let c_output_map = c.split("############") + .filter_map(|output| output.trim().split_once("\n")) + .collect::>(); + let rust_output_map = rust.split("############") + .filter_map(|output| output.trim().split_once("\n")) + .collect::>(); - if c == rust { - None - } else { - Some(FailureReason::Difference(intrinsic_name.clone(), c, rust)) - } - }) - .collect::>(); - - intrinsics.iter().for_each(|reason| match reason { - FailureReason::Difference(intrinsic, c, rust) => { + let intrinsics = c_output_map.keys().chain(rust_output_map.keys()).unique().collect_vec(); + let intrinsics_diff_count = intrinsics + .par_iter() + .filter_map(|&&intrinsic| { println!("Difference for intrinsic: {intrinsic}"); - let diff = diff::lines(c, rust); - diff.iter().for_each(|diff| match diff { - diff::Result::Left(c) => println!("C: {c}"), - diff::Result::Right(rust) => println!("Rust: {rust}"), - diff::Result::Both(_, _) => (), - }); + let c_output = c_output_map.get(intrinsic).unwrap(); + let rust_output = rust_output_map.get(intrinsic).unwrap(); + let diff = diff::lines(c_output, rust_output); + let diff_count = diff.into_iter().filter_map(|diff| match diff { + diff::Result::Left(c) => { + println!("C: {c}"); + Some(c) + } + diff::Result::Right(rust) => { + println!("Rust: {rust}"); + Some(rust) + } + diff::Result::Both(_, _) => None, + }).count(); println!("****************************************************************"); - } - FailureReason::RunC(intrinsic) => { - println!("Failed to run C program for intrinsic {intrinsic}") - } - FailureReason::RunRust(intrinsic) => { - println!("Failed to run rust program for intrinsic {intrinsic}") - } - }); + if diff_count > 0 { + Some(intrinsic) + } else { None } + }).count(); + println!( "{} differences found (tested {} intrinsics)", - intrinsics.len(), + intrinsics_diff_count, intrinsic_name_list.len() ); - intrinsics.is_empty() + + intrinsics_diff_count == 0 } From fd1c9c58306bad0c78d1e958dd8272198077e278 Mon Sep 17 00:00:00 2001 From: Madhav Madhusoodanan Date: Tue, 4 Nov 2025 22:02:20 +0530 Subject: [PATCH 3/9] chore: formatting checks --- crates/intrinsic-test/src/common/cli.rs | 6 --- crates/intrinsic-test/src/common/compare.rs | 53 +++++++++++++-------- 2 files changed, 32 insertions(+), 27 deletions(-) diff --git a/crates/intrinsic-test/src/common/cli.rs b/crates/intrinsic-test/src/common/cli.rs index 461ab542ea..ff34ef3d2d 100644 --- a/crates/intrinsic-test/src/common/cli.rs +++ b/crates/intrinsic-test/src/common/cli.rs @@ -7,12 +7,6 @@ pub enum Language { C, } -pub enum FailureReason { - RunC(String), - RunRust(String), - Difference(String, String, String), -} - /// Intrinsic test tool #[derive(clap::Parser)] #[command( diff --git a/crates/intrinsic-test/src/common/compare.rs b/crates/intrinsic-test/src/common/compare.rs index 96a0bb94aa..4ab2a33657 100644 --- a/crates/intrinsic-test/src/common/compare.rs +++ b/crates/intrinsic-test/src/common/compare.rs @@ -1,4 +1,3 @@ -use super::cli::FailureReason; use itertools::Itertools; use rayon::prelude::*; use std::{collections::HashMap, process::Command}; @@ -21,12 +20,12 @@ pub fn compare_outputs(intrinsic_name_list: &Vec, runner: &str, target: .arg(format!("./target/{target}/release/intrinsic-test-programs")) .current_dir("rust_programs") .output(); - + let (c, rust) = match (c, rust) { (Ok(c), Ok(rust)) => (c, rust), a => panic!("{a:#?}"), }; - + if !c.status.success() { error!( "Failed to run C program.\nstdout: {stdout}\nstderr: {stderr}", @@ -34,7 +33,7 @@ pub fn compare_outputs(intrinsic_name_list: &Vec, runner: &str, target: stderr = std::str::from_utf8(&c.stderr).unwrap_or(""), ); } - + if !rust.status.success() { error!( "Failed to run Rust program.\nstdout: {stdout}\nstderr: {stderr}", @@ -51,15 +50,21 @@ pub fn compare_outputs(intrinsic_name_list: &Vec, runner: &str, target: .unwrap() .to_lowercase() .replace("-nan", "nan"); - - let c_output_map = c.split("############") + + let c_output_map = c + .split("############") .filter_map(|output| output.trim().split_once("\n")) .collect::>(); - let rust_output_map = rust.split("############") + let rust_output_map = rust + .split("############") .filter_map(|output| output.trim().split_once("\n")) .collect::>(); - let intrinsics = c_output_map.keys().chain(rust_output_map.keys()).unique().collect_vec(); + let intrinsics = c_output_map + .keys() + .chain(rust_output_map.keys()) + .unique() + .collect_vec(); let intrinsics_diff_count = intrinsics .par_iter() .filter_map(|&&intrinsic| { @@ -67,22 +72,28 @@ pub fn compare_outputs(intrinsic_name_list: &Vec, runner: &str, target: let c_output = c_output_map.get(intrinsic).unwrap(); let rust_output = rust_output_map.get(intrinsic).unwrap(); let diff = diff::lines(c_output, rust_output); - let diff_count = diff.into_iter().filter_map(|diff| match diff { - diff::Result::Left(c) => { - println!("C: {c}"); - Some(c) - } - diff::Result::Right(rust) => { - println!("Rust: {rust}"); - Some(rust) - } - diff::Result::Both(_, _) => None, - }).count(); + let diff_count = diff + .into_iter() + .filter_map(|diff| match diff { + diff::Result::Left(c) => { + println!("C: {c}"); + Some(c) + } + diff::Result::Right(rust) => { + println!("Rust: {rust}"); + Some(rust) + } + diff::Result::Both(_, _) => None, + }) + .count(); println!("****************************************************************"); if diff_count > 0 { Some(intrinsic) - } else { None } - }).count(); + } else { + None + } + }) + .count(); println!( "{} differences found (tested {} intrinsics)", From 3c30d9145857300bdd1a9521529a8de0262040e4 Mon Sep 17 00:00:00 2001 From: Madhav Madhusoodanan Date: Tue, 4 Nov 2025 22:09:13 +0530 Subject: [PATCH 4/9] feat: increase TEST_SAMPLE_INTRINSICS_PERCENTAGE of x86_64 to 30% --- ci/intrinsic-test.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/intrinsic-test.sh b/ci/intrinsic-test.sh index be63f0c0c6..d641b7a754 100755 --- a/ci/intrinsic-test.sh +++ b/ci/intrinsic-test.sh @@ -75,7 +75,7 @@ case ${TARGET} in TEST_CXX_COMPILER="clang++" TEST_RUNNER="${CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_RUNNER}" TEST_SKIP_INTRINSICS=crates/intrinsic-test/missing_x86.txt - : "${TEST_SAMPLE_INTRINSICS_PERCENTAGE:=5}" + : "${TEST_SAMPLE_INTRINSICS_PERCENTAGE:=30}" ;; *) ;; From 290c7617c0450de0830d62203f88e0558de254e8 Mon Sep 17 00:00:00 2001 From: Madhav Madhusoodanan Date: Tue, 4 Nov 2025 22:52:33 +0530 Subject: [PATCH 5/9] fix: update the comparison algorithm for cleaner comparisons --- crates/intrinsic-test/missing_x86.txt | 3 +-- crates/intrinsic-test/src/common/compare.rs | 28 ++++++++++----------- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/crates/intrinsic-test/missing_x86.txt b/crates/intrinsic-test/missing_x86.txt index 58e37b92a1..53fb965ebb 100644 --- a/crates/intrinsic-test/missing_x86.txt +++ b/crates/intrinsic-test/missing_x86.txt @@ -890,7 +890,7 @@ _mm256_extract_epi16 _mm256_extract_epi8 _mm512_castsi128_si512 _mm512_castsi256_si512 -# _mm512_conj_pch +_mm512_conj_pch _mm512_mask_reduce_max_pd _mm512_mask_reduce_max_ps _mm512_mask_reduce_min_pd @@ -898,7 +898,6 @@ _mm512_mask_reduce_min_ps _mm_comineq_sh _mm_extract_epi16 _mm_extract_epi8 -_mm_mask_cvtepi16_epi8 _mm_mask_cvtpd_epi32 _mm_mask_cvtpd_ps _mm_ucomineq_sh \ No newline at end of file diff --git a/crates/intrinsic-test/src/common/compare.rs b/crates/intrinsic-test/src/common/compare.rs index 4ab2a33657..38fa8dc0ec 100644 --- a/crates/intrinsic-test/src/common/compare.rs +++ b/crates/intrinsic-test/src/common/compare.rs @@ -68,31 +68,31 @@ pub fn compare_outputs(intrinsic_name_list: &Vec, runner: &str, target: let intrinsics_diff_count = intrinsics .par_iter() .filter_map(|&&intrinsic| { - println!("Difference for intrinsic: {intrinsic}"); let c_output = c_output_map.get(intrinsic).unwrap(); let rust_output = rust_output_map.get(intrinsic).unwrap(); let diff = diff::lines(c_output, rust_output); - let diff_count = diff + let diffs = diff .into_iter() .filter_map(|diff| match diff { - diff::Result::Left(c) => { - println!("C: {c}"); - Some(c) - } - diff::Result::Right(rust) => { - println!("Rust: {rust}"); - Some(rust) - } + diff::Result::Left(_) | diff::Result::Right(_) => Some(diff), diff::Result::Both(_, _) => None, }) - .count(); - println!("****************************************************************"); - if diff_count > 0 { - Some(intrinsic) + .collect_vec(); + if diffs.len() > 0 { + Some((intrinsic, diffs)) } else { None } }) + .inspect(|(intrinsic, diffs)| { + println!("Difference for intrinsic: {intrinsic}"); + diffs.into_iter().for_each(|diff| match diff { + diff::Result::Left(c) => println!("C: {c}"), + diff::Result::Right(rust) => println!("Rust: {rust}"), + _ => (), + }); + println!("****************************************************************"); + }) .count(); println!( From 4c4cefda7500f1d14268ec090ca2fd07d71c8b33 Mon Sep 17 00:00:00 2001 From: Madhav Madhusoodanan Date: Tue, 4 Nov 2025 23:34:33 +0530 Subject: [PATCH 6/9] feat: add equality checks to reduce computation spent on equal outputs --- crates/intrinsic-test/src/common/compare.rs | 50 ++++++++++++--------- 1 file changed, 29 insertions(+), 21 deletions(-) diff --git a/crates/intrinsic-test/src/common/compare.rs b/crates/intrinsic-test/src/common/compare.rs index 38fa8dc0ec..b89059f9eb 100644 --- a/crates/intrinsic-test/src/common/compare.rs +++ b/crates/intrinsic-test/src/common/compare.rs @@ -11,16 +11,20 @@ fn runner_command(runner: &str) -> Command { } pub fn compare_outputs(intrinsic_name_list: &Vec, runner: &str, target: &str) -> bool { - let c = runner_command(runner) - .arg("./intrinsic-test-programs") - .current_dir("c_programs") - .output(); - - let rust = runner_command(runner) - .arg(format!("./target/{target}/release/intrinsic-test-programs")) - .current_dir("rust_programs") - .output(); - + let (c, rust) = rayon::join( + || { + runner_command(runner) + .arg("./intrinsic-test-programs") + .current_dir("c_programs") + .output() + }, + || { + runner_command(runner) + .arg(format!("./target/{target}/release/intrinsic-test-programs")) + .current_dir("rust_programs") + .output() + }, + ); let (c, rust) = match (c, rust) { (Ok(c), Ok(rust)) => (c, rust), a => panic!("{a:#?}"), @@ -70,18 +74,22 @@ pub fn compare_outputs(intrinsic_name_list: &Vec, runner: &str, target: .filter_map(|&&intrinsic| { let c_output = c_output_map.get(intrinsic).unwrap(); let rust_output = rust_output_map.get(intrinsic).unwrap(); - let diff = diff::lines(c_output, rust_output); - let diffs = diff - .into_iter() - .filter_map(|diff| match diff { - diff::Result::Left(_) | diff::Result::Right(_) => Some(diff), - diff::Result::Both(_, _) => None, - }) - .collect_vec(); - if diffs.len() > 0 { - Some((intrinsic, diffs)) - } else { + if rust_output.to_string() == c_output.to_string() { None + } else { + let diff = diff::lines(c_output, rust_output); + let diffs = diff + .into_iter() + .filter_map(|diff| match diff { + diff::Result::Left(_) | diff::Result::Right(_) => Some(diff), + diff::Result::Both(_, _) => None, + }) + .collect_vec(); + if diffs.len() > 0 { + Some((intrinsic, diffs)) + } else { + None + } } }) .inspect(|(intrinsic, diffs)| { From 76067f78a722a5e6eac3712fbeee1b931b5fdbc2 Mon Sep 17 00:00:00 2001 From: Madhav Madhusoodanan Date: Wed, 5 Nov 2025 11:20:12 +0530 Subject: [PATCH 7/9] feat: extract the delimiter to a const value for uniformity --- crates/intrinsic-test/src/common/compare.rs | 9 +++++---- crates/intrinsic-test/src/common/gen_c.rs | 6 +++++- crates/intrinsic-test/src/common/gen_rust.rs | 8 ++++---- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/crates/intrinsic-test/src/common/compare.rs b/crates/intrinsic-test/src/common/compare.rs index b89059f9eb..7c5d87b51f 100644 --- a/crates/intrinsic-test/src/common/compare.rs +++ b/crates/intrinsic-test/src/common/compare.rs @@ -2,6 +2,7 @@ use itertools::Itertools; use rayon::prelude::*; use std::{collections::HashMap, process::Command}; +pub const INTRINSIC_DELIMITER: &str = "############"; fn runner_command(runner: &str) -> Command { let mut it = runner.split_whitespace(); let mut cmd = Command::new(it.next().unwrap()); @@ -27,7 +28,7 @@ pub fn compare_outputs(intrinsic_name_list: &Vec, runner: &str, target: ); let (c, rust) = match (c, rust) { (Ok(c), Ok(rust)) => (c, rust), - a => panic!("{a:#?}"), + failure => panic!("Failed to run: {failure:#?}"), }; if !c.status.success() { @@ -56,11 +57,11 @@ pub fn compare_outputs(intrinsic_name_list: &Vec, runner: &str, target: .replace("-nan", "nan"); let c_output_map = c - .split("############") + .split(INTRINSIC_DELIMITER) .filter_map(|output| output.trim().split_once("\n")) .collect::>(); let rust_output_map = rust - .split("############") + .split(INTRINSIC_DELIMITER) .filter_map(|output| output.trim().split_once("\n")) .collect::>(); @@ -74,7 +75,7 @@ pub fn compare_outputs(intrinsic_name_list: &Vec, runner: &str, target: .filter_map(|&&intrinsic| { let c_output = c_output_map.get(intrinsic).unwrap(); let rust_output = rust_output_map.get(intrinsic).unwrap(); - if rust_output.to_string() == c_output.to_string() { + if rust_output.eq(c_output) { None } else { let diff = diff::lines(c_output, rust_output); diff --git a/crates/intrinsic-test/src/common/gen_c.rs b/crates/intrinsic-test/src/common/gen_c.rs index 30f359a27e..a95b4c36b7 100644 --- a/crates/intrinsic-test/src/common/gen_c.rs +++ b/crates/intrinsic-test/src/common/gen_c.rs @@ -1,6 +1,7 @@ use crate::common::intrinsic::Intrinsic; use super::argument::Argument; +use super::compare::INTRINSIC_DELIMITER; use super::indentation::Indentation; use super::intrinsic_helpers::IntrinsicTypeDefinition; @@ -149,7 +150,10 @@ pub fn write_main_cpp<'a>( writeln!(w, "int main(int argc, char **argv) {{")?; for intrinsic in intrinsics { - writeln!(w, " std::cout << \"############\" << std::endl;")?; + writeln!( + w, + " std::cout << \"{INTRINSIC_DELIMITER}\" << std::endl;" + )?; writeln!(w, " std::cout << \"{intrinsic}\" << std::endl;")?; writeln!(w, " run_{intrinsic}();\n")?; } diff --git a/crates/intrinsic-test/src/common/gen_rust.rs b/crates/intrinsic-test/src/common/gen_rust.rs index afc6ca4556..fb047e2612 100644 --- a/crates/intrinsic-test/src/common/gen_rust.rs +++ b/crates/intrinsic-test/src/common/gen_rust.rs @@ -1,11 +1,11 @@ use itertools::Itertools; use std::process::Command; -use crate::common::argument::ArgumentList; -use crate::common::intrinsic::Intrinsic; - +use super::compare::INTRINSIC_DELIMITER; use super::indentation::Indentation; use super::intrinsic_helpers::IntrinsicTypeDefinition; +use crate::common::argument::ArgumentList; +use crate::common::intrinsic::Intrinsic; // The number of times each intrinsic will be called. pub(crate) const PASSES: u32 = 20; @@ -87,7 +87,7 @@ pub fn write_main_rs<'a>( writeln!(w, "fn main() {{")?; for binary in intrinsics { - writeln!(w, " println!(\"############\");")?; + writeln!(w, " println!(\"{INTRINSIC_DELIMITER}\");")?; writeln!(w, " println!(\"{binary}\");")?; writeln!(w, " run_{binary}();\n")?; } From 4153c4e9d7d0f761509ed56dce1311f90f2c7608 Mon Sep 17 00:00:00 2001 From: Madhav Madhusoodanan Date: Wed, 5 Nov 2025 11:57:59 +0530 Subject: [PATCH 8/9] feat: reduce the intrinsics coverage for x86_64 intrinsics --- ci/intrinsic-test.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/intrinsic-test.sh b/ci/intrinsic-test.sh index d641b7a754..25a62e79e7 100755 --- a/ci/intrinsic-test.sh +++ b/ci/intrinsic-test.sh @@ -75,7 +75,7 @@ case ${TARGET} in TEST_CXX_COMPILER="clang++" TEST_RUNNER="${CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_RUNNER}" TEST_SKIP_INTRINSICS=crates/intrinsic-test/missing_x86.txt - : "${TEST_SAMPLE_INTRINSICS_PERCENTAGE:=30}" + : "${TEST_SAMPLE_INTRINSICS_PERCENTAGE:=20}" ;; *) ;; From c94fd76da5f2d868acfae8884f1410f28bef43a1 Mon Sep 17 00:00:00 2001 From: Madhav Madhusoodanan Date: Wed, 5 Nov 2025 12:41:58 +0530 Subject: [PATCH 9/9] chore: logging to trace the time taken by binaries to complete a run --- crates/intrinsic-test/src/common/compare.rs | 3 +++ crates/intrinsic-test/src/main.rs | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/crates/intrinsic-test/src/common/compare.rs b/crates/intrinsic-test/src/common/compare.rs index 7c5d87b51f..c4c2a1e3e4 100644 --- a/crates/intrinsic-test/src/common/compare.rs +++ b/crates/intrinsic-test/src/common/compare.rs @@ -47,6 +47,7 @@ pub fn compare_outputs(intrinsic_name_list: &Vec, runner: &str, target: ); } + info!("Completed running C++ and Rust test binaries"); let c = std::str::from_utf8(&c.stdout) .unwrap() .to_lowercase() @@ -70,6 +71,8 @@ pub fn compare_outputs(intrinsic_name_list: &Vec, runner: &str, target: .chain(rust_output_map.keys()) .unique() .collect_vec(); + + info!("Comparing outputs"); let intrinsics_diff_count = intrinsics .par_iter() .filter_map(|&&intrinsic| { diff --git a/crates/intrinsic-test/src/main.rs b/crates/intrinsic-test/src/main.rs index 3580d80bd1..e5c846877c 100644 --- a/crates/intrinsic-test/src/main.rs +++ b/crates/intrinsic-test/src/main.rs @@ -34,7 +34,7 @@ fn run(test_environment: impl SupportedArchitectureTest) { if !test_environment.build_rust_file() { std::process::exit(3); } - info!("comparing outputs"); + info!("Running binaries"); if !test_environment.compare_outputs() { std::process::exit(1); }