News: 0001580042

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

GCC 16 Will No Longer Treat Function Multi-Versioning As Experimental On ARM64

([GNU] 5 Hours Ago ARM64 FMV With GCC 16)


Function Multi-Versioning (FMV) is the compiler feature that allows developers to specify multiple versions of the same function that can be used for optimizing execution for specific target features. For example, FMV can allow optimized functions to be called if the CPU supports AVX, AVX-512, SSE4.2, or other differing ISA capabilities. With the GCC 16 compiler release, AArch64/ARM64 now considers its FMV support to be stable and complete.

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

"What the hell, he thought, you're only young once, and
threw himself out of the window. That would at least keep
the element of surprise on his side."

- Ford outwitting a Vogon with a rocket launcher by going
into another certain death situation.