-
Notifications
You must be signed in to change notification settings - Fork 98
add support for Hexagon HVX #500
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
base: master
Are you sure you want to change the base?
Conversation
|
quite a lot of the library assumes the max lane count is 64, at the very least basically all the tests that only test up to 64 lanes should also test more than 64 lanes. also the bitmasks code uses |
|
getting all the tests to pass with 128 lanes is going to be a lot of work and be somewhat controversial (though we do want to increase the limit to more than 128 at some point), so if you want this PR to have a good chance of getting merged quickly, I'd suggest leaving out the change to 128 lanes and maybe just have the 1 byte x 128 lanes hexagon types be commented out for now with a fixme to re-enable them when we get around to adding support for >64 lanes. |
Would it be a good idea for me to create an MCP?
I'm not in a hurry.
Sounds good to me: will do. |
Add explicit tests for integer and float operations with edge case values as requested by the community PR checklist: Signed integers (MAX, MIN, -1, 1, 0): - add, sub, mul edge cases with wrapping behavior - bitwise ops (AND, OR, XOR, NOT) edge cases - shift operations edge cases - reduce operations edge cases - abs and signum edge cases Unsigned integers (MAX, 1, 0): - add, sub, mul edge cases with wrapping behavior - div, rem edge cases - bitwise and shift operations edge cases - reduce operations edge cases - wrapping_neg and abs_diff edge cases Floats (large numbers, subnormals, NaN, ±Infinity): - arithmetic operations with special values - NaN propagation and comparison behavior - infinity arithmetic edge cases - neg, abs, recip, signum, copysign edge cases - classification functions (is_finite, is_nan, etc.) - simd_min, simd_max with special values - reduce operations with special values Tests skip ARM v7 Neon for subnormal-related tests due to known float opsem violations (issue rust-lang#439).
7c57d0b to
06629e0
Compare
|
BTW: not sure if I understood the goal of the checklist but 3e0f44c |
Hello, welcome to
std::simd!It seems this pull request template checklist was created while a lot of vector math ops were being implemented, and only really applies to ops. Feel free to delete everything here if it's not applicable, or ask for help if you're not sure what it means!
For a given vector math operation on TxN, please add tests for interactions with:
T::MAXT::MINFor a given vector math operation on TxN where T is a float, please add tests for test interactions with: