https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119083
--- Comment #6 from H.J. Lu <hjl.tools at gmail dot com> ---
(In reply to H.J. Lu from comment #4)
> (In reply to Uroš Bizjak from comment #1)
> > SSE_FIRST_REG is in ic86_class_likely_spilled_p because it is a
> > single-member class. It is there because of SSE4 pcmpistrm patterns.
> >
> > %eax (and other single_class) registers are also listed in
> > CLASS_LIKELY_SPILLED_P, they are also (very) commonly used, and there were
> > no problems with that. So, why is %xmm0 different?
>
> I will try removing AX, BX, CX and DX from ix86_class_likely_spilled_p. I
> will keep
> DI and SI since they are fixed in the string instructions.
This change:
diff --git a/gcc/config/i386/i386.cc b/gcc/config/i386/i386.cc
index b6aeb288018..6fdbae6737d 100644
--- a/gcc/config/i386/i386.cc
+++ b/gcc/config/i386/i386.cc
@@ -20581,10 +20581,6 @@ ix86_class_likely_spilled_p (reg_class_t rclass)
{
switch (rclass)
{
- case AREG:
- case DREG:
- case CREG:
- case BREG:
case AD_REGS:
case SIREG:
case DIREG:
caused:
FAIL: gcc.dg/pr105911.c (internal compiler error: in lra_split_hard_reg_for, at
lra-assigns.cc:1863)
FAIL: gcc.dg/pr105911.c (test for excess errors)
FAIL: gcc.target/i386/avx512vl-stv-rotatedi-1.c scan-assembler-times vpro[lr]q
29
FAIL: gcc.target/i386/bt-7.c scan-assembler-not and[lq][ \t]
FAIL: gcc.target/i386/naked-4.c scan-assembler-not %[re]bp
FAIL: gcc.target/i386/pr107548-1.c scan-assembler-not addl
FAIL: gcc.target/i386/pr107548-1.c scan-assembler-times \tv?movd\t 3
FAIL: gcc.target/i386/pr107548-1.c scan-assembler-times v?paddd 6
FAIL: gcc.target/i386/pr107548-2.c scan-assembler-not \taddq\t
FAIL: gcc.target/i386/pr107548-2.c scan-assembler-times v?paddq 2
FAIL: gcc.target/i386/pr57189.c scan-assembler-not movaps
FAIL: gcc.target/i386/pr57189.c scan-assembler-not movaps
FAIL: gcc.target/i386/pr78904-1b.c scan-assembler [ \t]andb
FAIL: gcc.target/i386/pr78904-1b.c scan-assembler [ \t]orb
FAIL: gcc.target/i386/pr78904-7b.c scan-assembler-not movzbl
FAIL: gcc.target/i386/pr78904-7b.c scan-assembler [ \t]orb
FAIL: gcc.target/i386/pr91188-2c.c scan-assembler [ \t]andw