Integrate SimdUnicode UTF-8 Validation for AdvSimd #122090
Draft
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.
Contributes to #103781, based on #104199.
Includes some changes to reduce code duplication and reuse existing code such as
VectorContainsNonAsciiCharto fit in with the library. Most intrinsics are replaced with Vector128 APIs. Otherwise, I tried to encapsulate where platform-specific intrinsics are used so that it will be easier to extend to other Vector128 platforms. That would just require replacingAdvSimd.Arm64.VectorTableLookupwithVector128.Shuffleand some Vector128 replacement forAdvSimd.ExtractVector128, which can be done in a later PR.The unit tests are also modified to improve the coverage and test cases.
Benchmark results
Neoverse-V2:
Neoverse-N2:
cc @dotnet/arm64-contrib @lemire @EgorBo @a74nh @SwapnilGaikwad