update 128-bit scrambler at each 16-bytes round.
ensure there is no delta-correlation possible between segments,
even when the initial custom seed is poor (<= 16 bytes, or full of `\0` characters).
Streaming implementation of XXH3/XXH128 could fail, reporting an incorrect hash value,
for certain specific ranges of length, and providing input in segments of random length.
issue reported by @WayneD
fix#378
updated test case to catch this issue
* vectorize initCustomSecret method
* revert Makefile
* pass compiling
* revert Makefile
* fix unused function warning
* do not use brace initialization for sse types
* workaround for msvc 32bit mode before vs 2013U2
* workaround before MSVC 2015
* use portable way for sse2
* Revert "use portable way for sse2"
This reverts commit 34eee07a7071ab963bd5a48e3960f40b28e209c2.
* use _mm_load_si128 for MSVC x86
* try to minimize align of custom secret
* for avx2 and sse2, optmize the prolog of XXH3_hashLong_xb_withSeed
Co-authored-by: James Z.M. Gao <gaozhiming@360.cn>
* Remove --quiet and "Loading ..." from manpage
* Remove "Loading ..." from markdown manpage
* Removing "Loading..." from code
* Update tests for "Loading..."
* Remove the remaining "Loading..." from source
Forgot about this one
* Test error message on non-existing file
* Fix a typo in a test (xxhsum vs ./xxhsum)
* Fix a typo for real. noneexistent -> nonexistent
Tested.
- Every symbol, typedef, and macro is prefixed with XXH or xxh.
- For compatibility with legacy code that messes with the internals,
XXH_OLD_NAMES can be defined to wrap the old names in macros. This
also brings back U32 and friends.
Use `__wgetmainargs()` instead of `GetCommandLineW()` and
`CommandLineToArgvW()`. While it is an internal API, aside from
declaring the function, it actually simplifies things a lot, as we can
setup a `wmain()` equivalent in a few lines.
It also avoids linking to `Shell32.dll`, which is a lot of bloat for a
simple command line utility.
Most importantly, this supports wildcards on `cmd.exe`, fixing #341.
Also improved comments and did minor cleanup.
Prevents SLP vectorization on Clang ARMv7 resulting in scalarized
multiplies.
Also should be more friendly for sizeopt. Loop should be unrolled
anyways, or the overhead of 128-bit multiplies on 32-bit outweigh
the branch a la XXH64_finalize. Needs to be benchmarked on x86.
Don't use `-mavx2 -maes` in collisions
It prevents `make test` from passing on non-x86 targets
TODO: proper Windows library flags: bfd accepts Linux flags, but
ld.lld errors on `-Wl,-soname`