Una función compatible con GNU Compiler Collection (GCC), que lamentablemente no se usa con más frecuencia, es la versión múltiple de funciones (FMV) para admitir múltiples versiones de una función con la función dada seleccionada en función del procesador de destino en uso. GCC FMV en x86_64 permite el uso de diferentes funciones, ya sea compatible con SSE4.2, AVX o incluso con una microarquitectura de CPU en particular. Arm finalmente está trabajando en el soporte de versiones múltiples de la función GCC para AArch64.
La función de versiones múltiples de GCC en x86_64 facilita a los desarrolladores la creación de funciones optimizadas para rutas de código activas que en tiempo de ejecución serán utilizadas por un procesador compatible/relevante. La versión múltiple de funciones permite el manejo en tiempo de ejecución de la ruta de código más adecuada para una función dada sin tener que recurrir al envío de múltiples archivos binarios o aumentar los requisitos básicos para su software. Pero actualmente GCC FMV solo funciona para x86/x86_64 y POWER. Además, esto actualmente solo funciona con el front-end C++ de GCC.
Arm está estudiando la posibilidad de admitir la versión múltiple de funciones de GCC para su arquitectura de CPU y recientemente ha publicado una especificación beta al respecto.
Arm anunció su trabajo beta sobre la compatibilidad con FMV y actualmente busca comentarios de los desarrolladores. sobre su manejo propuesto de la misma. Con FMV on Arm, buscan permitir que los desarrolladores usen una versión objetivo de Arm como uno de los cambios planificados. On Arm’s GitHub es su especificación propuesta para Arm FMV.