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

Reply via email to