Vector algorithms: runtime coverage for ARM64EC non-vectorized fallbacks again#6107
Open
AlexGuteniev wants to merge 6 commits intomicrosoft:mainfrom
Open
Vector algorithms: runtime coverage for ARM64EC non-vectorized fallbacks again#6107AlexGuteniev wants to merge 6 commits intomicrosoft:mainfrom
AlexGuteniev wants to merge 6 commits intomicrosoft:mainfrom
Conversation
AlexGuteniev
commented
Feb 25, 2026
| self.requires.append('edg') # available for x64, see features.py | ||
| elif flag[1:] == 'arch:AVX2': | ||
| self.requires.append('arch_avx2') # available for x86 and x64, see features.py | ||
| elif flag[1:] == 'D_CALL_ALL_X64_VECTOR_ALGORITHMS_ON_ARM64EC': |
Contributor
Author
There was a problem hiding this comment.
'D' + '_CALL_ALL_X64_VECTOR_ALGORITHMS_ON_ARM64EC' might be a better spelling for search.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
These fallbacks are executed when linking x64 objects to ARM64EC binary, but they are not executed in a non-mixed configuration. As producing mixed configuration is complex, we execute them in a test by introducing another special mode.
Unlike #6100, instead of using
_ENABLE_STL_INTERNAL_CHECKmacro, a new control macro is introduced, and the primary coverage is given to the normal mode. This separate control macro that is supported only on ARM64EC.In
<xutility>the change is rather verbose, but I'm afraid a more concise way will reduce clarity and/or robustness.We don't need a variety of modes like
/permissiveetc, the goal is to get all these algorithms called, so usual latest will do. We still want to execute different compilers and different run-time library linking.ASan would be desired too, but we don't have it available for ARM64EC. I've added test cases anyway for possible future ASan addition.
Only
VSO_0000000_vector_algorithmsneed this, asVSO_0000000_vector_algorithms_mismatch_and_lex_compareandVSO_0000000_vector_algorithms_floatsdon't test any algorithms that are vectorized on x64 not vectorized on ARM64, and forVSO_0000000_vector_algorithms_search_nI expect #6108 to land.