René's URL Explorer Experiment


Title: gh-144015: Add portable SIMD optimization for bytes.hex() by gpshead · Pull Request #143991 · python/cpython · GitHub

Open Graph Title: gh-144015: Add portable SIMD optimization for bytes.hex() by gpshead · Pull Request #143991 · python/cpython

X Title: gh-144015: Add portable SIMD optimization for bytes.hex() by gpshead · Pull Request #143991 · python/cpython

Description: The Python programming language. Contribute to python/cpython development by creating an account on GitHub.

Open Graph Description: Add SIMD optimization for bytes.hex(), bytearray.hex(), and binascii.hexlify() as well as hashlib .hexdigest() methods using portable GCC/Clang vector extensions that compile to native SIMD instruc...

X Description: Add SIMD optimization for bytes.hex(), bytearray.hex(), and binascii.hexlify() as well as hashlib .hexdigest() methods using portable GCC/Clang vector extensions that compile to native SIMD instruc...

Opengraph URL: https://github.com/python/cpython/pull/143991

X: @github

direct link

Domain: patch-diff.githubusercontent.com

route-pattern/:user_id/:repository/pull/:id/commits(.:format)
route-controllerpull_requests
route-actioncommits
fetch-noncev2:5791904f-a512-1977-d769-c2dab9dc3b0a
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-id8570:A0330:8928B:BBEA2:696E48B9
html-safe-nonce677411c246ae8416d4cdb3fbd6321edad6f8a680db2bf31fec54aea4b2fed923
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI4NTcwOkEwMzMwOjg5MjhCOkJCRUEyOjY5NkU0OEI5IiwidmlzaXRvcl9pZCI6IjYxNDE2NTU5NzY1Mzk3NzI3MyIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9
visitor-hmac930f3eef4e941bb75c0d876e042fc92d4d8201f1e000bf12e654bbafd969df65
hovercard-subject-tagpull_request:3185138582
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/commits
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/python/cpython/pull/143991/commits
twitter:imagehttps://opengraph.githubassets.com/00fe58fa88b657b64a29608b5d85cecaa0c9c1e27e03edfc68455771af145c1f/python/cpython/pull/143991
twitter:cardsummary_large_image
og:imagehttps://opengraph.githubassets.com/00fe58fa88b657b64a29608b5d85cecaa0c9c1e27e03edfc68455771af145c1f/python/cpython/pull/143991
og:image:altAdd SIMD optimization for bytes.hex(), bytearray.hex(), and binascii.hexlify() as well as hashlib .hexdigest() methods using portable GCC/Clang vector extensions that compile to native SIMD instruc...
og:image:width1200
og:image:height600
og:site_nameGitHub
og:typeobject
og:author:usernamegpshead
hostnamegithub.com
expected-hostnamegithub.com
None3d96554e55b469c47dbcd31f74dc86278872b170531e84c6ce7f3389673e01d1
turbo-cache-controlno-cache
go-importgithub.com/python/cpython git https://github.com/python/cpython.git
octolytics-dimension-user_id1525981
octolytics-dimension-user_loginpython
octolytics-dimension-repository_id81598961
octolytics-dimension-repository_nwopython/cpython
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id81598961
octolytics-dimension-repository_network_root_nwopython/cpython
turbo-body-classeslogged-out env-production page-responsive
disable-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
releaseef576694863a4c791d0a5cc9d2b84384d4414bcd
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://patch-diff.githubusercontent.com/python/cpython/pull/143991/commits#start-of-content
https://patch-diff.githubusercontent.com/
Sign in https://patch-diff.githubusercontent.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython%2Fcpython%2Fpull%2F143991%2Fcommits
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub SparkBuild and deploy intelligent appshttps://github.com/features/spark
GitHub ModelsManage and compare promptshttps://github.com/features/models
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://patch-diff.githubusercontent.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython%2Fcpython%2Fpull%2F143991%2Fcommits
Sign up https://patch-diff.githubusercontent.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Fcommits&source=header-repo&source_repo=python%2Fcpython
Reloadhttps://patch-diff.githubusercontent.com/python/cpython/pull/143991/commits
Reloadhttps://patch-diff.githubusercontent.com/python/cpython/pull/143991/commits
Reloadhttps://patch-diff.githubusercontent.com/python/cpython/pull/143991/commits
python https://patch-diff.githubusercontent.com/python
cpythonhttps://patch-diff.githubusercontent.com/python/cpython
Please reload this pagehttps://patch-diff.githubusercontent.com/python/cpython/pull/143991/commits
Notifications https://patch-diff.githubusercontent.com/login?return_to=%2Fpython%2Fcpython
Fork 33.9k https://patch-diff.githubusercontent.com/login?return_to=%2Fpython%2Fcpython
Star 71.1k https://patch-diff.githubusercontent.com/login?return_to=%2Fpython%2Fcpython
Code https://patch-diff.githubusercontent.com/python/cpython
Issues 5k+ https://patch-diff.githubusercontent.com/python/cpython/issues
Pull requests 2.1k https://patch-diff.githubusercontent.com/python/cpython/pulls
Actions https://patch-diff.githubusercontent.com/python/cpython/actions
Projects 31 https://patch-diff.githubusercontent.com/python/cpython/projects
Security Uh oh! There was an error while loading. Please reload this page. https://patch-diff.githubusercontent.com/python/cpython/security
Please reload this pagehttps://patch-diff.githubusercontent.com/python/cpython/pull/143991/commits
Insights https://patch-diff.githubusercontent.com/python/cpython/pulse
Code https://patch-diff.githubusercontent.com/python/cpython
Issues https://patch-diff.githubusercontent.com/python/cpython/issues
Pull requests https://patch-diff.githubusercontent.com/python/cpython/pulls
Actions https://patch-diff.githubusercontent.com/python/cpython/actions
Projects https://patch-diff.githubusercontent.com/python/cpython/projects
Security https://patch-diff.githubusercontent.com/python/cpython/security
Insights https://patch-diff.githubusercontent.com/python/cpython/pulse
gpsheadhttps://patch-diff.githubusercontent.com/gpshead
python:mainhttps://patch-diff.githubusercontent.com/python/cpython/tree/main
gpshead:opt-pystrhexhttps://patch-diff.githubusercontent.com/gpshead/cpython/tree/opt-pystrhex
Conversationhttps://patch-diff.githubusercontent.com/python/cpython/pull/143991
Commits16 (16)https://patch-diff.githubusercontent.com/python/cpython/pull/143991/commits
Checkshttps://patch-diff.githubusercontent.com/python/cpython/pull/143991/checks
Files changedhttps://patch-diff.githubusercontent.com/python/cpython/pull/143991/files
gh-144015: Add portable SIMD optimization for bytes.hex()https://patch-diff.githubusercontent.com/python/cpython/pull/143991/commits#top
gpsheadhttps://patch-diff.githubusercontent.com/gpshead
python:mainhttps://patch-diff.githubusercontent.com/python/cpython/tree/main
gpshead:opt-pystrhexhttps://patch-diff.githubusercontent.com/gpshead/cpython/tree/opt-pystrhex
pystrhex: Add AVX2 SIMD optimization for hex conversionhttps://patch-diff.githubusercontent.com/python/cpython/pull/143991/commits/bbb4a8a0a1570b57c10519bc71be016a5cdc8580
gpsheadhttps://patch-diff.githubusercontent.com/python/cpython/commits?author=gpshead
claudehttps://patch-diff.githubusercontent.com/python/cpython/commits?author=claude
bbb4a8ahttps://patch-diff.githubusercontent.com/python/cpython/pull/143991/commits/bbb4a8a0a1570b57c10519bc71be016a5cdc8580
https://patch-diff.githubusercontent.com/python/cpython/tree/bbb4a8a0a1570b57c10519bc71be016a5cdc8580
pystrhex: Add AVX-512 SIMD optimization for hex conversionhttps://patch-diff.githubusercontent.com/python/cpython/pull/143991/commits/90da084452868421540710639c10f32dff068dec
gpsheadhttps://patch-diff.githubusercontent.com/python/cpython/commits?author=gpshead
claudehttps://patch-diff.githubusercontent.com/python/cpython/commits?author=claude
90da084https://patch-diff.githubusercontent.com/python/cpython/pull/143991/commits/90da084452868421540710639c10f32dff068dec
https://patch-diff.githubusercontent.com/python/cpython/tree/90da084452868421540710639c10f32dff068dec
pystrhex: Add ARM NEON SIMD optimization for hex conversionhttps://patch-diff.githubusercontent.com/python/cpython/pull/143991/commits/bdceb9c6b3f7a674583908dcf78291e38f171a72
gpsheadhttps://patch-diff.githubusercontent.com/python/cpython/commits?author=gpshead
claudehttps://patch-diff.githubusercontent.com/python/cpython/commits?author=claude
bdceb9chttps://patch-diff.githubusercontent.com/python/cpython/pull/143991/commits/bdceb9c6b3f7a674583908dcf78291e38f171a72
https://patch-diff.githubusercontent.com/python/cpython/tree/bdceb9c6b3f7a674583908dcf78291e38f171a72
pystrhex: Add SSE2 SIMD optimization for hex conversionhttps://patch-diff.githubusercontent.com/python/cpython/pull/143991/commits/4f3d60dbd94870dda2ed09aaff90fcda7621189f
gpsheadhttps://patch-diff.githubusercontent.com/python/cpython/commits?author=gpshead
claudehttps://patch-diff.githubusercontent.com/python/cpython/commits?author=claude
4f3d60dhttps://patch-diff.githubusercontent.com/python/cpython/pull/143991/commits/4f3d60dbd94870dda2ed09aaff90fcda7621189f
https://patch-diff.githubusercontent.com/python/cpython/tree/4f3d60dbd94870dda2ed09aaff90fcda7621189f
pystrhex: Remove AVX2/AVX-512, keep SSE2-only for simplicityhttps://patch-diff.githubusercontent.com/python/cpython/pull/143991/commits/015cc55fc6ddcae0345a242255040672ee4c4004
gpsheadhttps://patch-diff.githubusercontent.com/python/cpython/commits?author=gpshead
claudehttps://patch-diff.githubusercontent.com/python/cpython/commits?author=claude
015cc55https://patch-diff.githubusercontent.com/python/cpython/pull/143991/commits/015cc55fc6ddcae0345a242255040672ee4c4004
https://patch-diff.githubusercontent.com/python/cpython/tree/015cc55fc6ddcae0345a242255040672ee4c4004
pystrhex: Replace SSE2/NEON with portable SIMD using GCC vector extensionshttps://patch-diff.githubusercontent.com/python/cpython/pull/143991/commits/ae3d7be06f802b1dff64cbdddf58380f0c6ed11d
gpsheadhttps://patch-diff.githubusercontent.com/python/cpython/commits?author=gpshead
claudehttps://patch-diff.githubusercontent.com/python/cpython/commits?author=claude
ae3d7behttps://patch-diff.githubusercontent.com/python/cpython/pull/143991/commits/ae3d7be06f802b1dff64cbdddf58380f0c6ed11d
https://patch-diff.githubusercontent.com/python/cpython/tree/ae3d7be06f802b1dff64cbdddf58380f0c6ed11d
pystrhex: Add SIMD optimization for large separator groupshttps://patch-diff.githubusercontent.com/python/cpython/pull/143991/commits/a22e5ce6fde77721a0e1c80558cf05348ed5b3b6
gpsheadhttps://patch-diff.githubusercontent.com/python/cpython/commits?author=gpshead
claudehttps://patch-diff.githubusercontent.com/python/cpython/commits?author=claude
a22e5cehttps://patch-diff.githubusercontent.com/python/cpython/pull/143991/commits/a22e5ce6fde77721a0e1c80558cf05348ed5b3b6
https://patch-diff.githubusercontent.com/python/cpython/tree/a22e5ce6fde77721a0e1c80558cf05348ed5b3b6
measure morehttps://patch-diff.githubusercontent.com/python/cpython/pull/143991/commits/2fe987cc8adafdc6209cf5323cc7aba8a4bb32ce
https://patch-diff.githubusercontent.com/gpshead
gpsheadhttps://patch-diff.githubusercontent.com/python/cpython/commits?author=gpshead
2fe987chttps://patch-diff.githubusercontent.com/python/cpython/pull/143991/commits/2fe987cc8adafdc6209cf5323cc7aba8a4bb32ce
https://patch-diff.githubusercontent.com/python/cpython/tree/2fe987cc8adafdc6209cf5323cc7aba8a4bb32ce
pystrhex: Lower SIMD separator threshold to 8 byteshttps://patch-diff.githubusercontent.com/python/cpython/pull/143991/commits/e643fb8b297f559cca3816fb10bebdd3e18287d6
gpsheadhttps://patch-diff.githubusercontent.com/python/cpython/commits?author=gpshead
claudehttps://patch-diff.githubusercontent.com/python/cpython/commits?author=claude
e643fb8https://patch-diff.githubusercontent.com/python/cpython/pull/143991/commits/e643fb8b297f559cca3816fb10bebdd3e18287d6
https://patch-diff.githubusercontent.com/python/cpython/tree/e643fb8b297f559cca3816fb10bebdd3e18287d6
pystrhex: Use signed comparison for efficient SIMD codegenhttps://patch-diff.githubusercontent.com/python/cpython/pull/143991/commits/92c281da41598b21157485fdbef88df7cd251d9f
gpsheadhttps://patch-diff.githubusercontent.com/python/cpython/commits?author=gpshead
claudehttps://patch-diff.githubusercontent.com/python/cpython/commits?author=claude
92c281dhttps://patch-diff.githubusercontent.com/python/cpython/pull/143991/commits/92c281da41598b21157485fdbef88df7cd251d9f
https://patch-diff.githubusercontent.com/python/cpython/tree/92c281da41598b21157485fdbef88df7cd251d9f
pystrhex: Factor out scalar hexlify into shared inline functionhttps://patch-diff.githubusercontent.com/python/cpython/pull/143991/commits/190936f44e855f74f819b238de188b40c7e0fec6
gpsheadhttps://patch-diff.githubusercontent.com/python/cpython/commits?author=gpshead
claudehttps://patch-diff.githubusercontent.com/python/cpython/commits?author=claude
190936fhttps://patch-diff.githubusercontent.com/python/cpython/pull/143991/commits/190936f44e855f74f819b238de188b40c7e0fec6
https://patch-diff.githubusercontent.com/python/cpython/tree/190936f44e855f74f819b238de188b40c7e0fec6
remove benchmark datahttps://patch-diff.githubusercontent.com/python/cpython/pull/143991/commits/b2dd34efbb0b015b9432274c8d6d28d1e880bda6
https://patch-diff.githubusercontent.com/gpshead
gpsheadhttps://patch-diff.githubusercontent.com/python/cpython/commits?author=gpshead
b2dd34ehttps://patch-diff.githubusercontent.com/python/cpython/pull/143991/commits/b2dd34efbb0b015b9432274c8d6d28d1e880bda6
https://patch-diff.githubusercontent.com/python/cpython/tree/b2dd34efbb0b015b9432274c8d6d28d1e880bda6
pystrhex: Enable SIMD on 32-bit ARM with NEONhttps://patch-diff.githubusercontent.com/python/cpython/pull/143991/commits/b6feaba12002934b2a144bb5e804666dd8017e4b
gpsheadhttps://patch-diff.githubusercontent.com/python/cpython/commits?author=gpshead
claudehttps://patch-diff.githubusercontent.com/python/cpython/commits?author=claude
b6feabahttps://patch-diff.githubusercontent.com/python/cpython/pull/143991/commits/b6feaba12002934b2a144bb5e804666dd8017e4b
https://patch-diff.githubusercontent.com/python/cpython/tree/b6feaba12002934b2a144bb5e804666dd8017e4b
explain more in the commentshttps://patch-diff.githubusercontent.com/python/cpython/pull/143991/commits/0f94c061d49821a74096e57df8dff9617b80fad7
https://patch-diff.githubusercontent.com/gpshead
gpsheadhttps://patch-diff.githubusercontent.com/python/cpython/commits?author=gpshead
0f94c06https://patch-diff.githubusercontent.com/python/cpython/pull/143991/commits/0f94c061d49821a74096e57df8dff9617b80fad7
https://patch-diff.githubusercontent.com/python/cpython/tree/0f94c061d49821a74096e57df8dff9617b80fad7
remove the microbenchmark codehttps://patch-diff.githubusercontent.com/python/cpython/pull/143991/commits/e8650f3f0ba2ba3df01304a2603d6d55a96adc54
https://patch-diff.githubusercontent.com/gpshead
gpsheadhttps://patch-diff.githubusercontent.com/python/cpython/commits?author=gpshead
e8650f3https://patch-diff.githubusercontent.com/python/cpython/pull/143991/commits/e8650f3f0ba2ba3df01304a2603d6d55a96adc54
https://patch-diff.githubusercontent.com/python/cpython/tree/e8650f3f0ba2ba3df01304a2603d6d55a96adc54
test_bytes: Add SIMD-specific test cases for bytes.hex()https://patch-diff.githubusercontent.com/python/cpython/pull/143991/commits/5fc294c7052cf2a239e3846a9e7e1ade17bd95ab
gpsheadhttps://patch-diff.githubusercontent.com/python/cpython/commits?author=gpshead
claudehttps://patch-diff.githubusercontent.com/python/cpython/commits?author=claude
5fc294chttps://patch-diff.githubusercontent.com/python/cpython/pull/143991/commits/5fc294c7052cf2a239e3846a9e7e1ade17bd95ab
https://patch-diff.githubusercontent.com/python/cpython/tree/5fc294c7052cf2a239e3846a9e7e1ade17bd95ab
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.