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
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: Ready To Merge

Development

Successfully merging this pull request may close these issues.

3 participants