replace 2 functions : XXH3_64bits() and XXH3_64bits_withSeed()
new target : make dispatch
compiled with -mavx2 by default
compiles fine with -mavx512f, but then crash at runtime detection
as this architecture offers decent performance for unaligned memory accesses (like x86/x64).
This circumvent the problem described in #383,
as the direct read path using `const xxh_u32*` will not be generated by default.
Note however that this does not go at the root of the problem,
which is a possibility of strict-aliasing issue
when using the direct read path _and_ inlining xxh32.
This issue however is more difficult to solve without a reproduction case.
I also used this opportunity to fix or reinforce documentation.
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.