Skip to content

Add Neon implementation of bitset_from_string#6167

Open
hazzlim wants to merge 8 commits intomicrosoft:mainfrom
hazzlim:bitset-from-string-pr
Open

Add Neon implementation of bitset_from_string#6167
hazzlim wants to merge 8 commits intomicrosoft:mainfrom
hazzlim:bitset-from-string-pr

Conversation

@hazzlim
Copy link
Contributor

@hazzlim hazzlim commented Mar 17, 2026

This PR adds a Neon implementation of bitset_from_string.

Benchmark Numbers ⏲️:

  MSVC Clang
bitset_from_string<length_type::char_count,15, char> 0.978 1.002
bitset_from_string<length_type::char_count,16, char> 1.8 1.83
bitset_from_string<length_type::char_count,36, char> 2.567 2.209
bitset_from_string<length_type::char_count,64, char> 5.14 4.209
bitset_from_string<length_type::char_count,512, char> 8.427 6.443
bitset_from_string<length_type::char_count,2048, char> 8.891 8.015
bitset_from_string<length_type::char_count,15, wchar_t> 1 0.993
bitset_from_string<length_type::char_count,16, wchar_t> 1.5 1.664
bitset_from_string<length_type::char_count,36, wchar_t> 2.556 2.244
bitset_from_string<length_type::char_count,64, wchar_t> 4.136 2.574
bitset_from_string<length_type::char_count,512, wchar_t> 5.6 4.074
bitset_from_string<length_type::char_count,2048, wchar_t> 6.081 5.333
bitset_from_string<length_type::null_term,15, char> 0.993 1
bitset_from_string<length_type::null_term,16, char> 1.739 1.712
bitset_from_string<length_type::null_term,36, char> 2.186 1.765
bitset_from_string<length_type::null_term,64, char> 3.822 3.398
bitset_from_string<length_type::null_term,512, char> 6 5.051
bitset_from_string<length_type::null_term,2048, char> 6.364 5.515
bitset_from_string<length_type::null_term,15, wchar_t> 1.013 0.988
bitset_from_string<length_type::null_term,16, wchar_t> 1.5 1.484
bitset_from_string<length_type::null_term,36, wchar_t> 2.062 1.704
bitset_from_string<length_type::null_term,64, wchar_t> 3.077 2.617
bitset_from_string<length_type::null_term,512, wchar_t> 4.112 3.849
bitset_from_string<length_type::null_term,2048, wchar_t> 4.492 4.297
bitset_from_stream<15, char> 1.014 1
bitset_from_stream<16, char> 1.115 1.031
bitset_from_stream<36, char> 1.177 1.05
bitset_from_stream<64, char> 1.22 1.141
bitset_from_stream<512, char> 1.227 1.231
bitset_from_stream<2048, char> 1.229 1.239
bitset_from_stream<15, wchar_t> 0.977 1.023
bitset_from_stream<16, wchar_t> 1.116 1.006
bitset_from_stream<36, wchar_t> 1.12 1.059
bitset_from_stream<64, wchar_t> 1.169 1.143
bitset_from_stream<512, wchar_t> 1.253 1.25
bitset_from_stream<2048, wchar_t> 1.228 1.245

@hazzlim hazzlim requested a review from a team as a code owner March 17, 2026 18:37
@github-project-automation github-project-automation bot moved this to Initial Review in STL Code Reviews Mar 17, 2026
@StephanTLavavej StephanTLavavej self-assigned this Mar 17, 2026
@StephanTLavavej StephanTLavavej added performance Must go faster ARM64 Related to the ARM64 architecture ARM64EC I can't believe it's not x64! labels Mar 17, 2026
@StephanTLavavej StephanTLavavej changed the title Add Neon implementation of bitset_to_string Add Neon implementation of bitset_from_string Mar 17, 2026
@StephanTLavavej

This comment was marked as resolved.

@hazzlim

This comment was marked as resolved.

@StephanTLavavej

This comment was marked as resolved.

@StephanTLavavej StephanTLavavej removed their assignment Mar 18, 2026
@StephanTLavavej StephanTLavavej moved this from Initial Review to Ready To Merge in STL Code Reviews Mar 18, 2026
@StephanTLavavej StephanTLavavej moved this from Ready To Merge to Merging in STL Code Reviews Mar 21, 2026
@StephanTLavavej
Copy link
Member

I'm mirroring this to the MSVC-internal repo. Please notify me if any further changes are pushed, otherwise no action is required.

StephanTLavavej added a commit to StephanTLavavej/STL that referenced this pull request Mar 21, 2026
StephanTLavavej added a commit to StephanTLavavej/STL that referenced this pull request Mar 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ARM64EC I can't believe it's not x64! ARM64 Related to the ARM64 architecture performance Must go faster

Projects

Status: Merging

Development

Successfully merging this pull request may close these issues.

3 participants