This series adds support for function multiversioning on aarch64. Patches 1-3 are already approved, with just one minor change from the previous version of patch 1 suggested by Richard Sandiford.
Patches 4-5 are updated based on Richard's reviews. The only major change is replacing the EXPANDED_CLONES_ATTRIBUTE target hook with the TARGET_HAS_FMV_TARGET_ATTRIBUTE macro. I've also reorganised dispatch_function_versions and aarch64_mangle_decl_assembler_name, along with several other minor fixes. The updated series passes regression testing on both aarch64 for C and C++. The previous version passed testing on x86; I haven't retested it since. Ok for master? Thanks, Andrew