https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118460
--- Comment #4 from Richard Earnshaw <rearnsha at gcc dot gnu.org> --- arm_vsel_comparison_operator is rejecting the comparison (LT) because it is not one that the vsel instruction can handle. We should be reversing the order of operands to the compare instruction and then using GT. That is, instead of (a < b) we need to use (b > a) For some reason this isn't happening. It's possible some other change has caused this to stop being done at some point, but I'm still investigating that.