Skip to content

Vector algorithms: runtime coverage for ARM64EC non-vectorized fallbacks again#6107

Open
AlexGuteniev wants to merge 6 commits intomicrosoft:mainfrom
AlexGuteniev:fallback-testing
Open

Vector algorithms: runtime coverage for ARM64EC non-vectorized fallbacks again#6107
AlexGuteniev wants to merge 6 commits intomicrosoft:mainfrom
AlexGuteniev:fallback-testing

Conversation

@AlexGuteniev
Copy link
Contributor

@AlexGuteniev AlexGuteniev commented Feb 25, 2026

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_CHECK macro, 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 /permissive etc, 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_algorithms need this, as VSO_0000000_vector_algorithms_mismatch_and_lex_compare and VSO_0000000_vector_algorithms_floats don't test any algorithms that are vectorized on x64 not vectorized on ARM64, and for VSO_0000000_vector_algorithms_search_n I expect #6108 to land.

@StephanTLavavej StephanTLavavej added test Related to test code ARM64EC I can't believe it's not x64! labels 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':
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

'D' + '_CALL_ALL_X64_VECTOR_ALGORITHMS_ON_ARM64EC' might be a better spelling for search.

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! test Related to test code

Projects

Status: Initial Review

Development

Successfully merging this pull request may close these issues.

2 participants