-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Avx2 new algo and tests #26
Conversation
I think this should pass all tests for AVX2! id suggest that it migth be a good time to review Moving on to #28 in the morning, |
dcc826a
to
2e2c0d4
Compare
I am checking out this PR and might create a PR on top of it if needed. Give me a few minutes. |
Ok. I can reproduce the issue. |
I think that the problem is that it tries to build the function with Avx2 in it, and only filters it out at runtime. |
If you merge #33, it should fix this PR to a point. |
Avx2 new algo and tests fix
@Nick-Nuon Feel free to merge this when you are happy!!! |
This is a new PR that contains the following:
-It adds a test for explicitly testing if a utf8 unit straddles 2 different SIMD vector.
-it adds a test for explicitly testing if there is a "too short" error at the very end of a sequence
-it adds tests for validating the utf6adjustment and scalarcountadjustment function
-It adds runtime dispatches for different architectures
-adds a test for an unterminated simd vector followed by an all ascii simd vector
-I took PR #25 and integrated it with the the optimizations that you introduced back en march. This concerns the AVX2 specifically.
The main difference concerns the "unterminated" path. In case of an unterminated sequence,
it moves back the "processedlengh" pointer up to the last known header byte, makes adjustment to the byte count instead of systematically calling the scalar rewintandValidate function.
-I also tried my best to separate the new code from the main algorithm to make debugging easier.