On Wed, Jun 24, 2026 at 9:23 AM H.J. Lu <[email protected]> wrote:
>
> On Wed, Jun 24, 2026 at 2:25 PM Uros Bizjak <[email protected]> wrote:
> >
> > On Wed, Jun 24, 2026 at 8:07 AM H.J. Lu <[email protected]> wrote:
> > >
> > > Use the previous scratch register if it is a general purpose register
> > > wide enough to supply the required mode, or an SSE register which
> > > is valid in the required mode.  If the required mode is QImode, the
> > > previous scratch register must be valid in QImode.  Also match const0_rtx
> > > against CONST0_RTX.
> > >
> > > gcc/
> > >
> > > PR target/125958
> > > * config/i386/i386-expand.cc (ix86_expand_lcp_stall_peephole):
> > > Update previous scratch register check.  Match const0_rtx
> > > against CONST0_RTX.
> > >
> > > gcc/testsuite/
> > >
> > > PR target/125958
> > > * gcc.target/i386/pr125958a.c: New test.
> > > * gcc.target/i386/pr125958b.c: Likewise.
> >
> > -  /* Reject DEST if a register is not wide enough to
> > -     supply MODE or invalid for QImode.  */
> > -  if (!REG_P (dest)
> > -      || (GET_MODE_SIZE (GET_MODE (dest))
> > -  < GET_MODE_SIZE (mode))
> > -      || (mode == QImode
> > -  && !ANY_QI_REGNO_P (REGNO (dest))))
> > +  /* Reject DEST if it isn't a general purpose register
> > +     wide enough to supply MODE or invalid for QImode
> > +     or isn't an SSE register which is invalid for
> > +     MODE.  */
> > +  if ((!GENERAL_REG_P (dest)
> >
> > Just change !REG_P (dest) to !GENERAL_REG_P (dest) and don't bother
> > with SSE regs.
> >
>
> Fixed in the v2 patch here.
>
> --
> H.J.
> ---
> Require general purpose register as previous scratch register in LCP
> stall peepholes.
>
> gcc/
>
> PR target/125958
> * config/i386/i386-expand.cc (ix86_expand_lcp_stall_peephole):
> Replace !REG_P (dest) with !GENERAL_REG_P (dest).
>
> gcc/testsuite/
>
> PR target/125958
> * gcc.target/i386/pr125958.c: New test.

OK.

Thanks,
Uros.

Reply via email to