aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Neves <[email protected]>2020-08-31 18:38:58 +0100
committerSamuel Neves <[email protected]>2020-08-31 19:12:01 +0100
commit8610ebda6a25b73dbebf656285725e3b1d255731 (patch)
treeec50f6d2d0b03cb56183eddfa88b1d3cc296106e
parentbf705f2d5471900a4e032e0c12eb457ee05ede9e (diff)
add sse2 tests and benchmarks
-rw-r--r--c/blake3_c_rust_bindings/benches/bench.rs39
-rw-r--r--c/blake3_c_rust_bindings/src/test.rs21
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;