aboutsummaryrefslogtreecommitdiff
path: root/.github
diff options
context:
space:
mode:
authorJack O'Connor <[email protected]>2020-03-29 19:05:04 -0400
committerJack O'Connor <[email protected]>2020-03-29 23:12:47 -0400
commit152740578e65ba16e4d008917aad7ea5673dd88f (patch)
tree3469654feee3382dbb3ba3b80faf9c125ca55426 /.github
parente06a0f255ae22449e96b62d0d733943c6a86cb71 (diff)
add testing-only flags to disable individual instruction sets
This lets CI test a wider range of possible SIMD support settings.
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/ci.yml39
1 files changed, 33 insertions, 6 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 4cdd644..6c2a77d 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -30,14 +30,41 @@ jobs:
- run: cargo test --features=rayon
# no_std tests.
- run: cargo test --no-default-features
- # Test the intrinsics implementations.
+
+ # A matrix of different test settings:
+ # - debug vs release
+ # - assembly vs Rust+C intrinsics vs pure Rust intrinsics
+ # - different levels of SIMD support
+ #
+ # Full SIMD support.
+ - run: cargo test --features=
- run: cargo test --features=prefer_intrinsics
- # Test the pure Rust build.
- run: cargo test --features=pure
- # Test release mode. This does more iteratations in test_fuzz_hasher.
- - run: cargo test --release
- - run: cargo test --release --features=prefer_intrinsics
- - run: cargo test --release --features=pure
+ - run: cargo test --features= --release
+ - run: cargo test --features=prefer_intrinsics --release
+ - run: cargo test --features=pure --release
+ # No AVX-512.
+ - run: cargo test --features=no_avx512
+ - run: cargo test --features=no_avx512,prefer_intrinsics
+ - run: cargo test --features=no_avx512,pure
+ - run: cargo test --features=no_avx512 --release
+ - run: cargo test --features=no_avx512,prefer_intrinsics --release
+ - run: cargo test --features=no_avx512,pure --release
+ # No AVX2.
+ - run: cargo test --features=no_avx512,no_avx2
+ - run: cargo test --features=no_avx512,no_avx2,prefer_intrinsics
+ - run: cargo test --features=no_avx512,no_avx2,pure
+ - run: cargo test --features=no_avx512,no_avx2 --release
+ - run: cargo test --features=no_avx512,no_avx2,prefer_intrinsics --release
+ - run: cargo test --features=no_avx512,no_avx2,pure --release
+ # No SSE4.1
+ - run: cargo test --features=no_avx512,no_avx2,no_sse41
+ - run: cargo test --features=no_avx512,no_avx2,no_sse41,prefer_intrinsics
+ - run: cargo test --features=no_avx512,no_avx2,no_sse41,pure
+ - run: cargo test --features=no_avx512,no_avx2,no_sse41 --release
+ - run: cargo test --features=no_avx512,no_avx2,no_sse41,prefer_intrinsics --release
+ - run: cargo test --features=no_avx512,no_avx2,no_sse41,pure --release
+
# Test benchmarks. RUSTC_BOOTSTRAP=1 lets this run on non-nightly toolchains.
- run: cargo test --benches
env: