mirror of
https://github.com/RsyncProject/rsync.git
synced 2026-03-25 17:52:13 -04:00
The AVX2 get_checksum1_avx2_64() read mul_one before initializing it, which is undefined behavior. Replace the cmpeq/abs trick with _mm256_set1_epi8(1) to match the SSSE3 and SSE2 versions. Add a TEST_SIMD_CHECKSUM1 test mode that verifies all SIMD paths (SSE2, SSSE3, AVX2, and the full dispatch chain) produce identical results to the C reference, across multiple buffer sizes with both aligned and unaligned buffers. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
12 lines
220 B
Bash
Executable File
12 lines
220 B
Bash
Executable File
#!/bin/sh
|
|
|
|
# Test SIMD checksum implementations against the C reference
|
|
|
|
. "$suitedir/rsync.fns"
|
|
|
|
if ! test -x "$TOOLDIR/simdtest"; then
|
|
test_skipped "simdtest not built (SIMD not available)"
|
|
fi
|
|
|
|
"$TOOLDIR/simdtest"
|