On Wed, Apr 30, 2025 at 8:12 PM Uros Bizjak <ubiz...@gmail.com> wrote:
>
> On Tue, Apr 29, 2025 at 11:40 PM H.J. Lu <hjl.to...@gmail.com> wrote:
> >
> > SSE_FIRST_REG was added to CLASS_LIKELY_SPILLED_P, which became
> > TARGET_CLASS_LIKELY_SPILLED_P, for
> >
> > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=40470
> >
> > Since RA has been improved and xmm0 is a commonly used register, remove
> > SSE_FIRST_REG from ix86_class_likely_spilled_p to improve xmm0 codegen:
>
> While the AVX version of pblendvb doesn't use XMM0 as an architectural
> register, there are still plenty of other cases, e.g. PCMPESTM and
> PCMPISTRM, SHA and KEYLOCKER insns, so you are risking RA failures
> with these insn if the life of XMM0 is extended.

This is no different from

void
foo1 (double x)
{
  register double xmm1 __asm ("xmm1") = x;
  asm volatile ("# %0" : "+v" (xmm1));
}

We don't add XMM1 to ix86_class_likely_spilled_p.

> OTOH, the (unrelated?) ternlog change changes the expander, where the
> expander does subreg tricks on memory operand, which doesn' look
> correct to me. adjust_address should be used instead.
>
>

Should I drop the ternlog change and submit a different patch?

Thanks.

-- 
H.J.

Reply via email to