Yann Collet
f577b99b0e
Merge branch 'dev' into xxh128
2019-05-02 15:30:42 -07:00
Yann Collet
6a64e4f17e
first xxh128 design
...
not terribly fast, but "acceptable" speed
2019-04-29 17:44:45 -07:00
easyaspi314 (Devin)
021668b9d0
Port over the VSX version
...
Supports both big and little endian.
2019-04-26 15:56:26 -04:00
Yann Collet
3622b1496e
tested new 64bits accumulator
...
disguised as xxh128
2019-04-25 09:55:10 -07:00
Yann Collet
095c978912
updated XXH128 for long input (> 128B)
...
scalar version only for the time being
2019-04-24 17:38:07 -07:00
Yann Collet
5543733900
xxh3-64bits : completed self-tests
2019-04-22 16:21:03 -07:00
Yann Collet
bef31a75e9
fixed minor gcc warning
...
xxh128 tests not restored yet
2019-03-28 22:50:30 -06:00
Yann Collet
8b6861ba4c
restored self-tests
...
most xxh3 tests updated
2019-03-28 22:47:22 -06:00
Yann Collet
8ffa196f25
update scrambling
...
does no longer depends on secret key's parity.
2019-03-17 12:31:42 -07:00
Yann Collet
f2163b8b75
changed algorithm for small inputs
...
- seed modifies the key values,
the value that can trigger a zero multiply is now seed-dependent
- accumulator also receive input as addition,
cancelling the impact of zero multiply.
Performance on small inputs seems slightly slower, within noise measurement level.
2019-03-16 21:27:39 -07:00
Yann Collet
f3d4bf4eef
xxh3: ensure all 64-bits of the seed are ingested
...
in the len=[1-3] case
2019-03-16 20:32:20 -07:00
easyaspi314 (Devin)
cf5694603d
Improve xxhsum output message quality
...
- xxhsum now prints more professional-looking error messages:
Before:
Pb opening foo
After:
Error: Could not open 'foo': No such file or directory.
- xxhsum will now attempt to display the architecture and the compiler
version in the benchmark WELCOME_MESSAGE.
It detects the following compilers:
- Clang
- GCC
- Intel Compiler
- MSVC
- tcc
and it should detect the following architectures:
- x86 (+SSE2/AVX/AVX2)
- x86_64 (+SSE2/AVX/AVX2)
- ARM (+NEON)
- aarch64
- PowerPC 64
- PowerPC
- AVR
- MIPS 64
- MIPS
Before:
./xxhsum 0.7.0 (64-bits little endian), by Yann Collet
After:
./xxhsum 0.7.0 (64-bits x86_64 + SSE2 little endian), GCC 8.3.0, by Yann Collet
- Sanity checks are consistent now and give better warning messages:
Before:
ERROR : Test 1 : 0x12345678 <> 0x02CC5D05 !!!!!
ERROR : Test 1 : 64-bit values non equals !!!!!
0x1234567890ABCDEFULL != 0xEF46DB3751D8E999ULL
After:
Error: 32-bit hash test 1: Internal sanity check failed!
Got 0x12345678, expected 0x02CC5D05.
Note: If you modified the hash functions, make sure to either update the values
or temporarily comment out the tests in BMK_sanityCheck.
...and the 64-bit and 128-bit messages now match. I eventually want to name the
tests instead of just using the test number, but this is still better than before.
- xxhsum now displays "stdin" instead of "-" when reading from stdin.
2019-03-15 11:56:58 -04:00
Yann Collet
40dbf78fa9
renamed XXH128_hash_t members to low64 and high64
2019-03-14 13:08:38 -07:00
Yann Collet
f622c806ef
xxhsum: fixed benchmark on low resolution timers
...
triggered an assert when time measured == 0
2019-03-13 15:55:24 -07:00
Yann Collet
aaea63b979
added XXH128 consistency tests
2019-03-13 14:44:41 -07:00
Yann Collet
638993f16b
added consistency tests for XXH3_64b
...
validated against SSE2 path
2019-03-11 15:09:27 -07:00
Yann Collet
2be95459cd
fixed minor c90 warning
2019-02-26 16:42:50 -08:00
Yann Collet
94bebd5b86
xxh3: more c90 compatibility
2019-02-26 15:55:25 -08:00
Yann Collet
43c10239c9
minor C90 adaptation fixes
...
added -Wconversion flag
2019-02-26 13:45:56 -08:00
Yann Collet
45f39e6d34
first implementation of XXH3_64b
...
currently can only be used for benchmarking (`-b`)
2019-02-26 12:36:23 -08:00
Yann Collet
0f2dd4a1cb
fixed minor cast warning
...
fix #139
2018-10-16 21:47:53 -07:00
Yann Collet
542430e0ec
fixed compilation issues under msys2/mingw64
2018-09-29 23:09:23 -07:00
Yann Collet
3eb9d18ddb
explicitly states when not checking a return value
...
although, cppcheck seems to overdo this warning,
as it also warns for function with `void` return type (??)
2018-09-17 12:39:18 -07:00
Yann Collet
68652df700
fixed ptr arithmetic on NULL
2018-09-17 12:28:59 -07:00
Yann Collet
df35d637c4
fixed minor printf formatting
2018-09-17 12:12:44 -07:00
Yann Collet
47128513a9
enlarge initial allocation
...
to be able to move start forward to an aligned position.
2018-03-21 06:18:58 -07:00
Yann Collet
8762a1d5f4
synthetic benchmark : ensure buffer alignment by 8
...
since `malloc()` only provides alignment by 4 when compiling with mingw32.
2018-03-21 06:16:16 -07:00
Yann Collet
c7d815c2ad
fixed usan warning
2018-03-20 12:51:36 -07:00
Yann Collet
fd7ea04f49
make clean : added removal of Mac OS-X specific bin directories
2018-03-20 12:49:13 -07:00
Yann Collet
c3557bcbfd
added target make check
...
`make test` does not contain platform-specific tests (32-bit, arm, etc.)
`make test-all` still includes them.
2018-03-20 10:50:45 -07:00
Yann Collet
4af72306da
removed mingw32 specific declaration
2018-03-20 10:34:08 -07:00
Yann Collet
81118ba2f4
fixed assert() ensuring one-hash time evaluation > 1/2Billions
...
so that 1/time doesn't overflow U32
2018-02-19 01:36:09 -08:00
Yann Collet
b1175fec76
added make list target
2018-02-19 01:06:07 -08:00
Yann Collet
51edcaba40
added special mode 0 (-qq) for benchmark
...
only output the result in it/s with a comma
for later retrieval as .csv file
2018-02-18 17:54:58 -08:00
Yann Collet
deb2d0be22
can select to benchmark one specific test
...
new hidden command -b#
2018-02-18 17:43:16 -08:00
Yann Collet
9a4fe59dda
improved timing for short inputs
...
by calling clock() (much) less often
2018-02-18 16:56:14 -08:00
Yann Collet
b1192827d7
added option -q
...
makes benchmark results less verbose
for easier storage into file.
2018-02-17 10:53:52 -08:00
Yann Collet
c39e4f9141
benchmark display presents it/s
2018-02-16 18:58:40 -08:00
Soojin Nam
c9c076c75b
fix a trivial typo
2017-12-26 10:57:24 +09:00
Yann Collet
5c174cfa4e
max line length at 120 ( #115 )
2017-10-09 12:26:59 -07:00
Yann Collet
75fdb38deb
fixed minor display issue with xxh32sum
...
a final "." was displayed to the right of the filename
2017-08-21 13:27:49 -07:00
Yann Collet
d9e2c7bfd7
fixed potential realloc() error ( #150 )
2017-06-14 17:07:25 -07:00
Yann Collet
91ce5bf3b4
fixed valgrind warning
2016-08-14 04:28:17 +02:00
Yann Collet
e631a066f7
better, more comparable, bench at small keys
2016-08-14 03:31:34 +02:00
Yann Collet
4fc497b71a
fixed minor ARM compilation warnings
2016-08-11 19:07:23 +02:00
Yann Collet
53c4511234
fixed minor warning under ARM compilation
2016-08-11 01:32:10 +02:00
Yann Collet
fd2e3e8bc6
fixed minor conversion warnings
2016-08-10 09:36:58 +02:00
Yann Collet
0e479116d6
removed date for reproducibility
...
minor `__inline`
2016-08-10 07:08:10 +02:00
Yann Collet
61c628549f
Implemented @stbrumme suggestion in #79
2016-08-06 20:48:24 +02:00
Yann Collet
059f79421e
fixed static analyzer warning
2016-06-06 14:25:18 +02:00