-
Notifications
You must be signed in to change notification settings - Fork 6.5k
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
[libjpeg-turbo] Enable NEON intrinsics for ARM builds #24775
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a new experimental fast check for PR issues. Please let us know if this bot is helpful!
After committing all other changes, the version database must be updated
git add -u && git commit
git checkout 261ca0dd4d458f9ea58fc7096b1eb1a68c47cfc8 -- versions
./vcpkg x-add-version --all
Diff
diff --git a/versions/l-/libjpeg-turbo.json b/versions/l-/libjpeg-turbo.json
index 857413f..6860f26 100644
--- a/versions/l-/libjpeg-turbo.json
+++ b/versions/l-/libjpeg-turbo.json
@@ -1,5 +1,10 @@
{
"versions": [
+ {
+ "git-tree": "f3ab7c40b47aa03953467e7697d3eea7b60d624e",
+ "version": "2.1.3",
+ "port-version": 3
+ },
{
"git-tree": "dd9bb6eb0d4e28d2b3ef0d83b6b9ef736555621d",
"version": "2.1.3",
@@ -15,7 +15,7 @@ vcpkg_from_github( | |||
) | |||
|
|||
if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64" OR (VCPKG_CMAKE_SYSTEM_NAME AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")) | |||
set(LIBJPEGTURBO_SIMD -DWITH_SIMD=OFF) | |||
set(LIBJPEGTURBO_SIMD -DWITH_SIMD=ON -DNEON_INTRINSICS=ON) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The question here is if NEON_INTRNSICS
are valid on all arm architectures or not.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There are runtime checks to determine if SIMD versions of routines should be called.
The intrinsics look compatible with ARMv7 and ARMv8.
I have only tested on Windows ARM64 devices though.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is consistent with what other ports do.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a new experimental fast check for PR issues. Please let us know if this bot is helpful!
After committing all other changes, the version database must be updated
git add -u && git commit
git checkout 261ca0dd4d458f9ea58fc7096b1eb1a68c47cfc8 -- versions
./vcpkg x-add-version --all
Diff
diff --git a/versions/l-/libjpeg-turbo.json b/versions/l-/libjpeg-turbo.json
index 857413f..6860f26 100644
--- a/versions/l-/libjpeg-turbo.json
+++ b/versions/l-/libjpeg-turbo.json
@@ -1,5 +1,10 @@
{
"versions": [
+ {
+ "git-tree": "f3ab7c40b47aa03953467e7697d3eea7b60d624e",
+ "version": "2.1.3",
+ "port-version": 3
+ },
{
"git-tree": "dd9bb6eb0d4e28d2b3ef0d83b6b9ef736555621d",
"version": "2.1.3",
Thanks! |
Describe the pull request
What does your PR fix?
Enables NEON Intrinsics for ARM builds to improve performance. Performance testing using tjbench:
Which triplets are supported/not supported? Have you updated the CI baseline?
No - not needed.
Does your PR follow the maintainer guide?
Yes
If you have added/updated a port: Have you run
./vcpkg x-add-version --all
and committed the result?Yes
If you are still working on the PR, open it as a Draft: https://github.blog/2019-02-14-introducing-draft-pull-requests/