[Enhancement] Optimize bitshuffle and crc for ARM (backport #44607) #44827
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.
Why I'm doing:
Optimize performance on the ARM platform.
What I'm doing:
Bitshuffle
Thanks for [arm64] use a better translation for move_mask kiyo-masui/bitshuffle#140. Apply this patch to optimize bishuffle.
CRC
Use NEON
__crc32cw
intrinsic to optimizecrc32c::Extend
.Use
__ARM_NEON
instead of__ARM_NEON__
__ARM_NEON__
is a legacy, and isn't defined in ARM v8. ARM v8 only defines__ARM_NEON
. Since we have already compiled with-march=armv8-a+crc
, it is safe to replace__ARM_NEON__
with__ARM_NEON
.See ARM C Language Extensions, GCC, and Stack Overflow for detail.
What type of PR is this:
Does this PR entail a change in behavior?
If yes, please specify the type of change:
Checklist:
Bugfix cherry-pick branch check:
This is an automatic backport of pull request #44607 done by [Mergify](https://mergify.com). ## Why I'm doing:
Optimize performance on the ARM platform.
What I'm doing:
Bitshuffle
Thanks for [arm64] use a better translation for move_mask kiyo-masui/bitshuffle#140. Apply this patch to optimize bishuffle.
CRC
Use NEON
__crc32cw
intrinsic to optimizecrc32c::Extend
.Use
__ARM_NEON
instead of__ARM_NEON__
__ARM_NEON__
is a legacy, and isn't defined in ARM v8. ARM v8 only defines__ARM_NEON
. Since we have already compiled with-march=armv8-a+crc
, it is safe to replace__ARM_NEON__
with__ARM_NEON
.See ARM C Language Extensions, GCC, and Stack Overflow for detail.
What type of PR is this:
Does this PR entail a change in behavior?
If yes, please specify the type of change:
Checklist: