same function that will be resolved at runtime based on the priority of their
``target`` attribute strings. A function is considered a multiversioned function
if either two declarations of the function have different ``target`` attribute
- strings, or if it has a ``target`` attribute string of ``default``. For
- example:
+strings, or if it has a ``target`` attribute string of ``default``. For
+example:
.. code-block:: c++
- __attribute__((target("arch=atom")))
- void foo() {} // will be called on 'atom' processors.
- __attribute__((target("default")))
- void foo() {} // will be called on any other processors.
+
+ __attribute__((target("arch=atom")))
+ void foo() {} // will be called on 'atom' processors.
+ __attribute__((target("default")))
+ void foo() {} // will be called on any other processors.
All multiversioned functions must contain a ``default`` (fallback)
implementation, otherwise usages of the function are considered invalid.