700 Commits

Author SHA1 Message Date
Yann Collet
ef24aa8ecf minor difference on streaming initialization
to help static analyzer
2019-06-14 13:08:17 -07:00
Yann Collet
2745060950 SCANBUILD can be defined before calling make staticAnalyze 2019-06-14 12:44:15 -07:00
Yann Collet
e9b91102eb completed tests for streaming with custom secret
fixed streaming with custom secret on small input
2019-06-14 12:26:33 -07:00
Yann Collet
47ce68677a updated selft-test sample generator
to generate more random bytes (and less zero).

updated tests accordingly.

confirmed XXH3 streaming more works fine (default & seed).
2019-06-14 11:51:44 -07:00
Yann Collet
6f0320e2d8 first test of XXH3 streaming variant
note : self-test output traces
2019-06-14 11:34:24 -07:00
Yann Collet
1eae7efdb0 Merge branch 'dev' into xxh3streamv2 2019-06-14 09:48:34 -07:00
Yann Collet
d5e42a6947 improved performance for most compilers
special case clang's auto-vectorizer for SSE2,
everybody else prefers force_inline.
2019-06-14 09:47:18 -07:00
Yann Collet
0556bd2318 completed variant of xxh3 streaming supporting custom secret
still to be tested
2019-06-13 18:24:10 -07:00
Yann Collet
303572d632 changed streaming API names, adding _64bits
to better clarify, since there will be a _128bits variant in the future.

Also : fixed streaming variant, all magic numbers have names

Note : does not work yet with custom secret sizes
2019-06-13 16:19:51 -07:00
Yann Collet
5902eb1cc1 Merge branch 'dev' into xxh3streamv2 2019-06-13 15:56:41 -07:00
Yann Collet
21e64a92bf comment on force_inline and Visual 2019-06-13 15:33:00 -07:00
Yann Collet
f9a73ff4bd make secret unaligned for mergeAccs and last accumulate
so that it's different from scrambler and normal accumulate
2019-06-13 14:33:21 -07:00
Yann Collet
1e4aca9718 favor SSE2 auto-vectorization
changed XXH3_hashLong_internal_loop() directive to `static`
2019-06-13 14:27:19 -07:00
Yann Collet
ac897bec29 alignment hint for auto-vectorizer
works great for AVX2, but not for SSE2 (?)

also : use char* to explicitly tell that no alignment guarantee is being made

also : slightly changed start address of last stripe's secret (-1)
so that it doesn't correspond to scrambler's secret.
2019-06-13 13:45:07 -07:00
Yann Collet
ac8c5b2422 Merge branch 'wsecret' into dev 2019-06-13 01:05:10 -07:00
Yann Collet
557bd1c82e fixed init error in seed mode 2019-06-13 01:04:52 -07:00
Yann Collet
0261ab6d08 minor type adaption
prefer char over BYTE
2019-06-12 20:57:50 -07:00
Yann Collet
726a8577d8
Merge pull request #215 from Cyan4973/wsecret
XXH3_64bits_withSecret()
2019-06-12 18:34:23 -07:00
Yann Collet
2edd05613e fixed missing readKey replacements 2019-06-12 18:12:39 -07:00
Yann Collet
0ab31bc636 fixed performance regression for XXH3_64bits()
better make sure, with inlining,
that secret is clearly understood as being kSecret,
saving some operations.
2019-06-12 18:09:04 -07:00
Yann Collet
e90298ab7c replaced readKey64 by readLE64
to make it more explicit what's happening.
2019-06-12 17:29:41 -07:00
Yann Collet
915d269297 disable VSX tests on TravisCI
need a better compiler
and a better detection macro
2019-06-12 17:22:14 -07:00
Yann Collet
31e15a77e7 removed the power9 test from TravisCI
check if the VSX code path get triggered nonetheless
2019-06-12 17:13:23 -07:00
Yann Collet
705e6a1c12 try power8 instead
because power9 is not available on `trusty` environment,
which is the current environment for PowerPC tests.
2019-06-12 16:30:18 -07:00
Yann Collet
cb236ba0c7 added flag -mpu=power9 for VSX code path
seems required to enable vec_revb()
2019-06-12 16:19:41 -07:00
Yann Collet
8e0d3e09dc added -mvsx flag for VSX code path 2019-06-12 13:39:57 -07:00
Yann Collet
7a890464f9 added -maltivec flag for VSX code path 2019-06-12 13:36:25 -07:00
Yann Collet
4e1baec2a3 changed kKey into kSecret
for naming consistency
2019-06-12 13:33:31 -07:00
Yann Collet
3cf51cbf3d added VSX code path check on Travis CI 2019-06-12 13:30:56 -07:00
Yann Collet
5fc33510ff secret is now a blob of bytes with no alignment restriction
secret must only respect a size condition now.

also : switch powerpc tests to trusty,
as they seem to fail on xenial environment.
2019-06-12 13:17:32 -07:00
Yann Collet
e0b888581a switched kKey to a blob of bytes
try to remove size and alignment restrictions for custom secret.
2019-06-12 11:33:40 -07:00
Yann Collet
e8a4ce2936 updated code comments
for clarity, and corrections following API changes
2019-06-12 10:35:20 -07:00
Yann Collet
6d65c2a17c ensure all secret consumers read in 64-bit
so that secret can be transformed into a "blob of bytes"
thus being compatible with any endianess
2019-06-11 17:55:23 -07:00
Yann Collet
384844c3ad update formula for len1-3
removes a 32-bit secret consumer
2019-06-11 17:39:20 -07:00
Yann Collet
3eeba74bab improved code comments 2019-06-11 17:26:30 -07:00
Yann Collet
e6b8322a01 added XXH3 documentation 2019-06-11 16:40:56 -07:00
Yann Collet
c0cebc7075 XXH3: return 0 on len==0
avoid to leak the seed.
2019-06-11 16:32:17 -07:00
Yann Collet
7beaa48dba removed XXH3_hashlong
it was incorrect : it would always use kKey,
instead of the modified key.
2019-06-11 16:29:57 -07:00
Yann Collet
7d5eae1df4 prepare convergence torwards hashlong_internal
bench first
2019-06-11 16:05:23 -07:00
Yann Collet
c85a8408d8 prepare _withSecret_internal 2019-06-11 15:51:48 -07:00
Yann Collet
5a41cfccd4 factored mid-size
single implementation for both _withSeed and _withSecret
2019-06-11 15:38:34 -07:00
Yann Collet
b854395114 moved long size test near the beginning 2019-06-11 15:29:31 -07:00
Yann Collet
a6e1d9f499 removed trailing white space 2019-06-11 14:43:17 -07:00
Yann Collet
d38d336c51 fixed x++ compilation 2019-06-11 13:11:20 -07:00
Yann Collet
d2d1c967cc actually use the secrets 2019-06-11 12:13:34 -07:00
Yann Collet
0aef33ed12 fix minor warning (compilation of xxh3 test) 2019-06-11 11:25:45 -07:00
Yann Collet
cd33dce88f simplified short inputs (<16)
common functions for seed and secret
2019-06-11 11:22:57 -07:00
Yann Collet
04557272e5 test generic short input functions
suitable for both custom seed and secret
2019-06-11 11:13:44 -07:00
Yann Collet
891e3308b2 implemented a variant "with custom secret"
for benchmark of the "regular" variant.
2019-06-11 10:51:09 -07:00
Yann Collet
69ecf5fab2
Merge pull request #214 from orivej/align
Rename ALIGN to XXH_ALIGN
2019-06-10 11:56:05 -07:00