Explore related resources

Find more information about the topics in this Learning Path:

Give feedback

How would you rate this Learning Path?

Review frequently asked questions

AI-assisted

These FAQs were drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.

Close
?
How do I know which function version executed at runtime?
In the dot product example, the SVE-specialized function prints a message when it runs. If that message doesn’t appear, the default version executed.
Which option should I use in `target_version` or `target_clones`?
Use architectural feature names shown in the examples, such as default, sve, sve2, simd, mops, or sme2. You can also combine multiple features using a + separator in the attribute string.
Does the order of entries in `target_clones` affect selection?
No. The order of versions listed in target_clones doesn’t affect which version is chosen at runtime.
How should I organize code that uses ACLE intrinsics or inline assembly?
Place SVE or SVE2-specific code in functions annotated with the corresponding target_version (for example, sve or sve2). Keep a generic default version so the binary runs on Armv8 targets without those features.
What should I check if I use streaming mode with multiversioning?
Ensure every version of the function uses the same calling convention. The examples show combining __arm_streaming (and related attributes) with target_version or target_clones to keep versions compatible.

Share

Tell others about this Learning Path.

Back