https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121571

            Bug ID: 121571
           Summary: libgcc/config/i386/32/sfp-machine.h:7:3: error: 'asm'
                    operand has impossible constraints or there are not
                    enough registers
           Product: gcc
           Version: 15.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: thomas.petazz...@free-electrons.com
  Target Milestone: ---

When building gcc (initial stage) for i686, but with
--with-arch="skylake-avx512" *and* -Os part of CFLAGS_FOR_TARGET (causing
libgcc to be built with -Os), the build of GCC 15.2.0 fails with:

In file included from ./sfp-machine.h:14,
                 from ../../../libgcc/soft-fp/soft-fp.h:38,
                 from ../../../libgcc/soft-fp/addtf3.c:29:
../../../libgcc/soft-fp/addtf3.c: In function '__addtf3':
../../../libgcc/config/i386/32/sfp-machine.h:7:3: error: 'asm' operand has
impossible constraints or there are not enough registers
    7 |   __asm__ ("add{l} {%11,%3|%3,%11}\n\t"                         \
      |   ^~~~~~~
../../../libgcc/soft-fp/op-4.h:159:3: note: in expansion of macro
'__FP_FRAC_ADD_4'
  159 |   __FP_FRAC_ADD_4 (R##_f[3], R##_f[2], R##_f[1], R##_f[0],      \
      |   ^~~~~~~~~~~~~~~
../../../libgcc/soft-fp/op-common.h:437:27: note: in expansion of macro
'_FP_FRAC_ADD_4'
  437 |                           _FP_FRAC_ADD_##wc (R, X, Y);                 
\
      |                           ^~~~~~~~~~~~~
../../../libgcc/soft-fp/op-common.h:846:34: note: in expansion of macro
'_FP_ADD_INTERNAL'
  846 | #define _FP_ADD(fs, wc, R, X, Y) _FP_ADD_INTERNAL (fs, wc, R, X, Y,
'+')
      |                                  ^~~~~~~~~~~~~~~~
../../../libgcc/soft-fp/quad.h:178:41: note: in expansion of macro '_FP_ADD'
  178 | # define FP_ADD_Q(R, X, Y)              _FP_ADD (Q, 4, R, X, Y)
      |                                         ^~~~~~~
../../../libgcc/soft-fp/addtf3.c:44:3: note: in expansion of macro 'FP_ADD_Q'
   44 |   FP_ADD_Q (R, A, B);
      |   ^~~~~~~~
../../../libgcc/config/i386/32/sfp-machine.h:37:3: error: 'asm' operand has
impossible constraints or there are not enough registers
   37 |   __asm__ ("sub{l} {%11,%3|%3,%11}\n\t"                         \
      |   ^~~~~~~
../../../libgcc/soft-fp/op-4.h:164:3: note: in expansion of macro
'__FP_FRAC_SUB_4'
  164 |   __FP_FRAC_SUB_4 (R##_f[3], R##_f[2], R##_f[1], R##_f[0],      \
      |   ^~~~~~~~~~~~~~~
../../../libgcc/soft-fp/op-common.h:623:27: note: in expansion of macro
'_FP_FRAC_SUB_4'
  623 |                           _FP_FRAC_SUB_##wc (R, X, Y);                 
\
      |                           ^~~~~~~~~~~~~
../../../libgcc/soft-fp/op-common.h:846:34: note: in expansion of macro
'_FP_ADD_INTERNAL'
  846 | #define _FP_ADD(fs, wc, R, X, Y) _FP_ADD_INTERNAL (fs, wc, R, X, Y,
'+')
      |                                  ^~~~~~~~~~~~~~~~
../../../libgcc/soft-fp/quad.h:178:41: note: in expansion of macro '_FP_ADD'
  178 | # define FP_ADD_Q(R, X, Y)              _FP_ADD (Q, 4, R, X, Y)
      |                                         ^~~~~~~
../../../libgcc/soft-fp/addtf3.c:44:3: note: in expansion of macro 'FP_ADD_Q'
   44 |   FP_ADD_Q (R, A, B);
      |   ^~~~~~~~
make[2]: *** [../../../libgcc/static-object.mk:17: addtf3.o] Error 1

Full log available at
https://autobuild.buildroot.org/results/e3148c3ad81e6f597bb192241b5ec89a18f53061/build-end.log

In the same conditions, GCC 14.3.0 builds just fine, so there is a regression
between GCC 14.x and GCC 15.x on this topic.

Reply via email to