https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120011
Bug ID: 120011 Summary: [15 Regression] Impossible asm constraints in 32 bit libgcc when compiling with -march=x86-64-v4 Product: gcc Version: 15.1.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libgcc Assignee: unassigned at gcc dot gnu.org Reporter: stefan.kneifel at bluewin dot ch Target Milestone: --- Regression 15.1.1 against 15.0: When compiling gcc itself using -march=x86-64-v4, it stops at compiling the 32 bit version of libgcc with the following error: 'asm' operand has impossible constraints or there are not enough registers creduc'ing the regression gives the following code snippet: -------------------------------------------------------------------------- long a, b, c, d; void f() { long e[2]; if (e[0] | e[1]) { __asm__("add %7,%3; adc %6,%2; adc %5,%1; adc %4,%0" : "=r"(d), "=&r"(c), "=&r"(b), "=&r"(a) : "0"(0L), "g"(e), "g"(e[1]), "g"(e[0])); } } -------------------------------------------------------------------------- Compiling this with gcc 15.0 works with -march=x86-64-v4 -m32, gcc 15.1.1 does not work and gives the mentioned error. 64 bit compiling works fine with both versions.