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.