Skip to content
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

Add vectorized paths for Span<T>.Reverse #64412

Merged
merged 14 commits into from
Apr 26, 2022

Commits on Apr 25, 2022

  1. Configuration menu
    Copy the full SHA
    904bb85 View commit details
    Browse the repository at this point in the history
  2. Added vectorized paths for Span<T>.Reverse for primitive types that a…

    …re the same size as char, int, or long that use AVX2 or SSSE3 where possible
    alexcovington committed Apr 25, 2022
    Configuration menu
    Copy the full SHA
    088771f View commit details
    Browse the repository at this point in the history
  3. Apply suggestions from code review

    Co-authored-by: Theodore Tsirpanis <teo@tsirpanis.gr>
    alexcovington and teo-tsirpanis committed Apr 25, 2022
    Configuration menu
    Copy the full SHA
    fd882e9 View commit details
    Browse the repository at this point in the history
  4. Added vectorized paths for Span.Reverse to Array.Reverse. Added expli…

    …cit inlining and moved generic fallbacks into their own private methods.
    alexcovington committed Apr 25, 2022
    Configuration menu
    Copy the full SHA
    74deff7 View commit details
    Browse the repository at this point in the history
  5. Consolidate fall back case into single method, use one wrapper for bo…

    …th Span.Reverse and Array.Reverse
    alexcovington committed Apr 25, 2022
    Configuration menu
    Copy the full SHA
    2899789 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    a6c8101 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    3aa7cf1 View commit details
    Browse the repository at this point in the history
  8. Just overload Reverse

    alexcovington committed Apr 25, 2022
    Configuration menu
    Copy the full SHA
    86caa86 View commit details
    Browse the repository at this point in the history
  9. Use Unsafe.Subtract where it is semantically more intuitive, camelCas…

    …e for reverseMask variable
    alexcovington committed Apr 25, 2022
    Configuration menu
    Copy the full SHA
    7c4cd52 View commit details
    Browse the repository at this point in the history
  10. Camel case formatting, add condition check for Array.Reverse to avoid…

    … reversing empty or single-element array, better shuffle for int and long Reverse using bit control mask instead of vector control mask
    alexcovington committed Apr 25, 2022
    Configuration menu
    Copy the full SHA
    3c3f140 View commit details
    Browse the repository at this point in the history
  11. Rework loops to use new LoadUnsafe/StoreUnsafe vector APIs. Use Permu…

    …te4x64 and PermuteVar8x32 for Int32 and Int64 respectively to reduce total operations.
    alexcovington committed Apr 25, 2022
    Configuration menu
    Copy the full SHA
    94f45cc View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    39e906f View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    1ed5bef View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    80ae8ab View commit details
    Browse the repository at this point in the history