FMV, manually coded in assembly language, is quite commonly used in a number of performance-critical libraries such as glibc and libjpeg-turbo. Intel C++ Compiler, GNU Compiler Collection since GCC 6, and Clang since clang 7 allow for a simplified approach, with the compiler taking care of function duplication and selection. GCC and clang requires explicit labels in the code to "clone" functions, while ICC does so automatically (under the command-line option ). The Rust programming language also supports FMV. The setup is similar to GCC and Clang in that the code defines what instruction sets to compile for, but cloning is manually done via inlining.
FMV manually coded in assembly language is quite commonly used in a number of performance-critical libraries such as glibc and libjpeg-turbo Intel C++ Compiler GNU Compiler Collection since GCC 6 and Clang since clang 7 allow for a simplified approach with the compiler taking care of function duplication and selection GCC and clang requires explicit labels in the code to "clone" functions while ICC does so automatically (under the command-line option ) The Rust programming language also supports FMV The setup is similar to GCC and Clang in that the code defines what instruction sets to compile for but cloning is manually done via inlining