https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70873
--- Comment #19 from Bernd Schmidt <bernds at gcc dot gnu.org> --- > This splitter is placed before the one we want. We have quite > a few similar splitters far apart and we lose the track. This > patch: > > diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md > index 940dc20..dc46b16 100644 > --- a/gcc/config/i386/i386.md > +++ b/gcc/config/i386/i386.md > @@ -3615,6 +3615,35 @@ > FAIL; > }) > > +;; Break partial reg stall for cvtss2sd. > + > +(define_split > + [(set (match_operand:DF 0 "register_operand") > + (float_extend:DF ...] > works for me. Did you mean to move the existing one rather than add a copy? I don't know what you're trying to tell me with the two followup messages after this.