Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Add RVV support. Current implementation targets both RVV 0.7.1 and RVV 1.0, this is bad for two reason:
__riscv
prefix for intrinsics in newer compilersRVV 1.0 can only be tested with QEMU because there is no boards with up-to-date vectors. QEMU also cannot be used for performance testing because it executes all vector ops on scalar registers.
I've tested RVV 0.7.1 on Lichee Pi4A using cross-compilation with Xuantie GCC toolchain. Default
xxhsum -b
results were uninformative for me, so here's full benchmarks.With
-DXXH_VECTOR=XXH_SCALAR
:With
-DXXH_VECTOR=XXH_RVV
:As soon as I get a board with RVV 1.0, I'll try to adjust code and benchmark it, but for now let it be a draft.