Skip to content

Add SVE implementations of bitset_meow_string - #6420

Open
Hari Limaye (hazzlim) wants to merge 1 commit into
microsoft:mainfrom
hazzlim:bitset-meow-string-pr
Open

Add SVE implementations of bitset_meow_string#6420
Hari Limaye (hazzlim) wants to merge 1 commit into
microsoft:mainfrom
hazzlim:bitset-meow-string-pr

Conversation

@hazzlim

Copy link
Copy Markdown
Contributor

This PR adds SVE implementations of bitset_meow_string.

As discussed on the STL discord, the ACLE does not expose explicit predicate load/store intrinsics, so this implementation uses explicit casts to/from svbool_t*.

Benchmark Results ⏲️

Neoverse N2 (Cobalt 100)

benchmark speedup
BM_bitset_to_string_large_single<512, char> 1.016
BM_bitset_to_string_large_single<2048, char> 1.254
BM_bitset_to_string_large_single<512, wchar_t> 1.152
BM_bitset_to_string_large_single<2048, wchar_t> 1.433
bitset_from_string<length_type::char_count, 16, char> 1.087
bitset_from_string<length_type::char_count, 36, char> 1.163
bitset_from_string<length_type::char_count, 64, char> 1.408
bitset_from_string<length_type::char_count, 512, char> 1.674
bitset_from_string<length_type::char_count, 2048, char> 1.629
bitset_from_string<length_type::char_count, 16, wchar_t> 1.111
bitset_from_string<length_type::char_count, 36, wchar_t> 1.12
bitset_from_string<length_type::char_count, 64, wchar_t> 1.209
bitset_from_string<length_type::char_count, 512, wchar_t> 1.42
bitset_from_string<length_type::char_count, 2048, wchar_t> 1.452
bitset_from_string<length_type::null_term, 16, char> 1.148
bitset_from_string<length_type::null_term, 36, char> 1.241
bitset_from_string<length_type::null_term, 64, char> 1.327
bitset_from_string<length_type::null_term, 512, char> 1.333
bitset_from_string<length_type::null_term, 2048, char> 1.356
bitset_from_string<length_type::null_term, 16, wchar_t> 1.125
bitset_from_string<length_type::null_term, 36, wchar_t> 1.122
bitset_from_string<length_type::null_term, 64, wchar_t> 1.122
bitset_from_string<length_type::null_term, 512, wchar_t> 1.309
bitset_from_string<length_type::null_term, 2048, wchar_t> 1.264
bitset_from_stream<16, char> 1
bitset_from_stream<36, char> 1.025
bitset_from_stream<64, char> 1.045
bitset_from_stream<512, char> 1
bitset_from_stream<2048, char> 1
bitset_from_stream<16, wchar_t> 1.023
bitset_from_stream<36, wchar_t> 1.023
bitset_from_stream<64, wchar_t> 1.022
bitset_from_stream<512, wchar_t> 1
bitset_from_stream<2048, wchar_t> 1.045

@azure-pipelines

This comment was marked as resolved.

@StephanTLavavej Stephan T. Lavavej (StephanTLavavej) added performance Must go faster ARM64 Related to the ARM64 architecture labels Aug 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ARM64 Related to the ARM64 architecture performance Must go faster

Projects

Status: Initial Review

Development

Successfully merging this pull request may close these issues.

2 participants