diff options
| author | Samuel Neves <[email protected]> | 2020-08-31 18:38:58 +0100 |
|---|---|---|
| committer | Samuel Neves <[email protected]> | 2020-08-31 19:12:01 +0100 |
| commit | 8610ebda6a25b73dbebf656285725e3b1d255731 (patch) | |
| tree | ec50f6d2d0b03cb56183eddfa88b1d3cc296106e | |
| parent | bf705f2d5471900a4e032e0c12eb457ee05ede9e (diff) | |
add sse2 tests and benchmarks
| -rw-r--r-- | c/blake3_c_rust_bindings/benches/bench.rs | 39 | ||||
| -rw-r--r-- | c/blake3_c_rust_bindings/src/test.rs | 21 |
2 files changed, 60 insertions, 0 deletions
diff --git a/c/blake3_c_rust_bindings/benches/bench.rs b/c/blake3_c_rust_bindings/benches/bench.rs index 4335a26..c6e821e 100644 --- a/c/blake3_c_rust_bindings/benches/bench.rs +++ b/c/blake3_c_rust_bindings/benches/bench.rs @@ -71,6 +71,18 @@ fn bench_single_compression_portable(b: &mut Bencher) { #[bench] #[cfg(any(target_arch = "x86", target_arch = "x86_64"))] +fn bench_single_compression_sse2(b: &mut Bencher) { + if !blake3_c_rust_bindings::sse2_detected() { + return; + } + bench_single_compression_fn( + b, + blake3_c_rust_bindings::ffi::x86::blake3_compress_in_place_sse2, + ); +} + +#[bench] +#[cfg(any(target_arch = "x86", target_arch = "x86_64"))] fn bench_single_compression_sse41(b: &mut Bencher) { if !blake3_c_rust_bindings::sse41_detected() { return; @@ -136,6 +148,19 @@ fn bench_many_chunks_fn(b: &mut Bencher, f: HashManyFn, degree: usize) { #[bench] #[cfg(any(target_arch = "x86", target_arch = "x86_64"))] +fn bench_many_chunks_sse2(b: &mut Bencher) { + if !blake3_c_rust_bindings::sse2_detected() { + return; + } + bench_many_chunks_fn( + b, + blake3_c_rust_bindings::ffi::x86::blake3_hash_many_sse2, + 4, + ); +} + +#[bench] +#[cfg(any(target_arch = "x86", target_arch = "x86_64"))] fn bench_many_chunks_sse41(b: &mut Bencher) { if !blake3_c_rust_bindings::sse41_detected() { return; @@ -215,6 +240,20 @@ fn bench_many_parents_fn(b: &mut Bencher, f: HashManyFn, degree: usize) { #[bench] #[cfg(any(target_arch = "x86", target_arch = "x86_64"))] +fn bench_many_parents_sse2(b: &mut Bencher) { + if !blake3_c_rust_bindings::sse2_detected() { + return; + } + bench_many_parents_fn( + b, + blake3_c_rust_bindings::ffi::x86::blake3_hash_many_sse2, + 4, + ); +} + + +#[bench] +#[cfg(any(target_arch = "x86", target_arch = "x86_64"))] fn bench_many_parents_sse41(b: &mut Bencher) { if !blake3_c_rust_bindings::sse41_detected() { return; diff --git a/c/blake3_c_rust_bindings/src/test.rs b/c/blake3_c_rust_bindings/src/test.rs index 9f46730..62a7ee1 100644 --- a/c/blake3_c_rust_bindings/src/test.rs +++ b/c/blake3_c_rust_bindings/src/test.rs @@ -145,6 +145,18 @@ fn test_compress_portable() { #[test] #[cfg(any(target_arch = "x86", target_arch = "x86_64"))] +fn test_compress_sse2() { + if !crate::sse2_detected() { + return; + } + test_compress_fn( + crate::ffi::x86::blake3_compress_in_place_sse2, + crate::ffi::x86::blake3_compress_xof_sse2, + ); +} + +#[test] +#[cfg(any(target_arch = "x86", target_arch = "x86_64"))] fn test_compress_sse41() { if !crate::sse41_detected() { return; @@ -286,6 +298,15 @@ fn test_hash_many_portable() { #[test] #[cfg(any(target_arch = "x86", target_arch = "x86_64"))] +fn test_hash_many_sse2() { + if !crate::sse2_detected() { + return; + } + test_hash_many_fn(crate::ffi::x86::blake3_hash_many_sse2); +} + +#[test] +#[cfg(any(target_arch = "x86", target_arch = "x86_64"))] fn test_hash_many_sse41() { if !crate::sse41_detected() { return; |
