https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70873
--- Comment #20 from H.J. Lu <hjl.tools at gmail dot com> --- (In reply to Bernd Schmidt from comment #19) > > 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? Yes. > I don't know what you're trying to tell me with the two followup messages > after this. We should exam those split/peephole patterns to check if their placements and conditions are correct.