This series adds support for function multiversioning on aarch64. There are a few minor issues in patch 2/3, that I intend to fix in future versions or follow-up patches. I also have some open questions about the correctness of existing function multiversioning implementations [1], that could affect some details of this patch series.
Patches 1/3 and 2/3 both pass regression testing on x86. Patch 2/3 requires adding function multiversioning tests to aarch64, which I haven't included yet. Patch 3/3 demonstrates a potential approach for improving consistency of symbol naming between target_clones and target/target_version multiversioning, but would require agreement on how to resolve some of the issues discussed in [1]. Thanks, Andrew [1] https://gcc.gnu.org/pipermail/gcc/2023-October/242686.html