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