Skip to content

Clean up ARM64 popcount - #4695

Merged
Stephan T. Lavavej (StephanTLavavej) merged 5 commits into
microsoft:mainfrom
AlexGuteniev:pop
Jun 18, 2024
Merged

Clean up ARM64 popcount#4695
Stephan T. Lavavej (StephanTLavavej) merged 5 commits into
microsoft:mainfrom
AlexGuteniev:pop

Conversation

@AlexGuteniev

@AlexGutenievAlex Guteniev (AlexGuteniev) commented May 25, 2024

Copy link
Copy Markdown
Contributor

It is both way simpler (don't need to use another intrinsics set) and better for codegen (as the previous version is only for 64-bits and does not take advantage of smaller parameter size).

I have not tested on actual ARM64 and ARM64EC.

Resolves#4683
Resolves#2129
Resolvesllvm/llvm-project#50830

@AlexGuteniev

Copy link
Copy Markdown
ContributorAuthor

Honestly, what I'm doing for ARM64EC here is uneducated guess.
This needs to be checked by an ARM64EC expert.

@StephanTLavavejStephan T. Lavavej (StephanTLavavej) added performance Must go faster ARM64 Related to the ARM64 architecture labels May 28, 2024
Comment threadstl/inc/__msvc_bit_utils.hpp Outdated
Comment threadstl/inc/__msvc_bit_utils.hpp Outdated
Comment threadstl/inc/__msvc_bit_utils.hpp
Comment threadstl/inc/__msvc_bit_utils.hpp
Comment threadstl/inc/__msvc_bit_utils.hpp Outdated
@StephanTLavavej

Copy link
Copy Markdown
Member

I'm mirroring this to the MSVC-internal repo - please notify me if any further changes are pushed.

@StephanTLavavej

Copy link
Copy Markdown
Member

Thanks for greatly simplifying this code! 😻 ✨ 🎉

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ARM64Related to the ARM64 architectureperformanceMust go faster

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ARM64 __popcnt intrinsics Add neon_cnt and neon_addv8 for 64-bit ARM for parity with MSVC <intrin0.h>: needs some stuff for _M_ARM64

2 participants

@AlexGuteniev@StephanTLavavej