GCC 16 Will No Longer Treat Function Multi-Versioning As Experimental On ARM64
- Reference: 0001580042
- News link: https://www.phoronix.com/news/GCC-16-Stable-ARM64-FMV
- Source link:
With [1]this commit yesterday to the GCC Git codebase ahead of next year's GCC 16.1 compiler release, Function Multi-Versioning is now treated as stable on 64-bit ARM hardware.
Up to now using FMV on AArch64 would emit a warning:
"Function Multi Versioning support is experimental, and the behavior is likely to change"
But now the FMV support on AArch64 is considered spec compliant and good enough for treating as stable. Arm engineers had been [2]working on GCC FMV support the past 3+ years .
Arm's FMV support allows calling different functions if the processor supports Scalable Vector Extension (SVE), Scalable Matrix Extension (SME), the dot product extension, and a wide variety of other Arm ISA features. The Arm FMV specification is documented via [3]this repository .
Those wanting to learn more about GCC's FMV support can do so via the [4]GCC Wiki .
[1] https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=de60b080e3f8b105b2f69c56de3aeb996f4e81e6
[2] https://www.phoronix.com/news/Arm-GCC-Function-Multi-Ver
[3] https://github.com/ARM-software/acle/blob/main/main/acle.md#function-multi-versioning
[4] https://gcc.gnu.org/wiki/FunctionMultiVersioning
chuckula