https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98348
--- Comment #11 from Jakub Jelinek <jakub at gcc dot gnu.org> --- I'm not sure about the knot changes, isn't that too risky at least at this point? I mean, can't we instead just match what knot emits? As for the new predicate, I think we should check CONST_DOUBLE_AS_FLOAT_P (op) before trying to do the lowpart_subreg, perhaps even check if the CONST_DOUBLE is NaN if it can be done cheaply before doing the more expensive lowpart_subreg.