https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118460
--- Comment #16 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The releases/gcc-15 branch has been updated by Richard Earnshaw <[email protected]>: https://gcc.gnu.org/g:545bdfc81340100cfbf69de1fbd4f0fd26d1ed9c commit r15-10491-g545bdfc81340100cfbf69de1fbd4f0fd26d1ed9c Author: Richard Earnshaw <[email protected]> Date: Tue Oct 14 13:53:05 2025 +0100 arm: avoid unmatched insn in movhfcc [PR118460] When compiling for m-profile with the floating-point extension we have a vsel instruction that takes a limited set of comparisons. In most cases we can use this with careful selection of the operand order, but we need to expand things in the right way. This patch is in two parts: 1) We validate that the expansion will produce correct RTL; 2) We canonicalize the comparison to increase the chances that the above check will pass. gcc: PR target/118460 * config/arm/arm.cc (arm_canonicalize_comparison): For floating- point comparisons, swap the operand order if that will be more likely to produce a comparison that can be used with VSEL. (arm_validize_comparison): Make sure that HFmode comparisons are compatible with VSEL. gcc/testsuite: PR target/118460 * gcc.target/arm/armv8_2-fp16-move-1.c: Adjust expected output. * gcc.target/arm/armv8_2-fp16-move-2.c: Likewise. (cherry picked from commit 99af0f9078865269ae13367a25e2b156c8ccba77)
