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

            Bug ID: 116625
           Summary: [15 regression] regressions on arm-eabi since
                    r15-1619-g3b9b8d6cfdf593
           Product: gcc
           Version: 15.0
            Status: UNCONFIRMED
          Keywords: testsuite-fail
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: thiago.bauermann at linaro dot org
                CC: jskumari at gcc dot gnu.org
  Target Milestone: ---
            Target: arm

Created attachment 59056
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=59056&action=edit
diff of all generated assembly files

Since commit r15-1619-g3b9b8d6cfdf593 we see on arm-eabi all the regressions
reported in bug 116623, plus the ones below:

Running gcc:gcc.target/arm/cmse/cmse.exp ...
FAIL: gcc.target/arm/cmse/mainline/8_1m/bitfield-4.c -march=armv8.1-m.main+fp
-mthumb  -O2   scan-assembler lsls\t(r[3-9]|r10|fp|ip), \\1, #1.*blxns\t\\1
FAIL: gcc.target/arm/cmse/mainline/8_1m/bitfield-4.c -march=armv8.1-m.main+fp
-mthumb  -O2   scan-assembler lsrs\t(r[3-9]|r10|fp|ip), \\1, #1.*blxns\t\\1
FAIL: gcc.target/arm/cmse/mainline/8_1m/bitfield-4.c -march=armv8.1-m.main+fp
-mthumb  -O3 -g   scan-assembler lsls\t(r[3-9]|r10|fp|ip), \\1, #1.*blxns\t\\1
FAIL: gcc.target/arm/cmse/mainline/8_1m/bitfield-4.c -march=armv8.1-m.main+fp
-mthumb  -O3 -g   scan-assembler lsrs\t(r[3-9]|r10|fp|ip), \\1, #1.*blxns\t\\1
FAIL: gcc.target/arm/cmse/mainline/8_1m/bitfield-6.c -march=armv8.1-m.main+fp
-mthumb  -O2   scan-assembler lsls\t(r[3-9]|r10|fp|ip), \\1, #1.*blxns\t\\1
FAIL: gcc.target/arm/cmse/mainline/8_1m/bitfield-6.c -march=armv8.1-m.main+fp
-mthumb  -O2   scan-assembler lsrs\t(r[3-9]|r10|fp|ip), \\1, #1.*blxns\t\\1
FAIL: gcc.target/arm/cmse/mainline/8_1m/bitfield-6.c -march=armv8.1-m.main+fp
-mthumb  -O3 -g   scan-assembler lsls\t(r[3-9]|r10|fp|ip), \\1, #1.*blxns\t\\1
FAIL: gcc.target/arm/cmse/mainline/8_1m/bitfield-6.c -march=armv8.1-m.main+fp
-mthumb  -O3 -g   scan-assembler lsrs\t(r[3-9]|r10|fp|ip), \\1, #1.*blxns\t\\1
FAIL: gcc.target/arm/cmse/mainline/8_1m/bitfield-8.c -march=armv8.1-m.main+fp
-mthumb  -O2   scan-assembler lsls\t(r[3-9]|r10|fp|ip), \\1, #1.*blxns\t\\1
FAIL: gcc.target/arm/cmse/mainline/8_1m/bitfield-8.c -march=armv8.1-m.main+fp
-mthumb  -O2   scan-assembler lsrs\t(r[3-9]|r10|fp|ip), \\1, #1.*blxns\t\\1
FAIL: gcc.target/arm/cmse/mainline/8_1m/bitfield-8.c -march=armv8.1-m.main+fp
-mthumb  -O3 -g   scan-assembler lsls\t(r[3-9]|r10|fp|ip), \\1, #1.*blxns\t\\1
FAIL: gcc.target/arm/cmse/mainline/8_1m/bitfield-8.c -march=armv8.1-m.main+fp
-mthumb  -O3 -g   scan-assembler lsrs\t(r[3-9]|r10|fp|ip), \\1, #1.*blxns\t\\1
FAIL: gcc.target/arm/cmse/mainline/8_1m/bitfield-and-union.c
-march=armv8.1-m.main+fp -mthumb  -O1   scan-assembler
lsls\t(r[4-9]|r10|fp|ip), \\1, #1.*blxns\t\\1
FAIL: gcc.target/arm/cmse/mainline/8_1m/bitfield-and-union.c
-march=armv8.1-m.main+fp -mthumb  -O1   scan-assembler
lsrs\t(r[4-9]|r10|fp|ip), \\1, #1.*blxns\t\\1
FAIL: gcc.target/arm/cmse/mainline/8_1m/bitfield-and-union.c
-march=armv8.1-m.main+fp -mthumb  -O2   scan-assembler
lsls\t(r[4-9]|r10|fp|ip), \\1, #1.*blxns\t\\1
FAIL: gcc.target/arm/cmse/mainline/8_1m/bitfield-and-union.c
-march=armv8.1-m.main+fp -mthumb  -O2   scan-assembler
lsrs\t(r[4-9]|r10|fp|ip), \\1, #1.*blxns\t\\1
FAIL: gcc.target/arm/cmse/mainline/8_1m/bitfield-and-union.c
-march=armv8.1-m.main+fp -mthumb  -O3 -g   scan-assembler
lsls\t(r[4-9]|r10|fp|ip), \\1, #1.*blxns\t\\1
FAIL: gcc.target/arm/cmse/mainline/8_1m/bitfield-and-union.c
-march=armv8.1-m.main+fp -mthumb  -O3 -g   scan-assembler
lsrs\t(r[4-9]|r10|fp|ip), \\1, #1.*blxns\t\\1
FAIL: gcc.target/arm/cmse/mainline/8_1m/union-2.c -march=armv8.1-m.main+fp
-mthumb  -O2   scan-assembler lsls\t(r[3-9]|r10|fp|ip), \\1, #1.*blxns\t\\1
FAIL: gcc.target/arm/cmse/mainline/8_1m/union-2.c -march=armv8.1-m.main+fp
-mthumb  -O2   scan-assembler lsrs\t(r[3-9]|r10|fp|ip), \\1, #1.*blxns\t\\1
FAIL: gcc.target/arm/cmse/mainline/8_1m/union-2.c -march=armv8.1-m.main+fp
-mthumb  -O3 -g   scan-assembler lsls\t(r[3-9]|r10|fp|ip), \\1, #1.*blxns\t\\1
FAIL: gcc.target/arm/cmse/mainline/8_1m/union-2.c -march=armv8.1-m.main+fp
-mthumb  -O3 -g   scan-assembler lsrs\t(r[3-9]|r10|fp|ip), \\1, #1.*blxns\t\\1

In all of the failures above, the problem is that GCC is now using lsr/lsl
instructions rather than lsrs/lsls. For example:

diff -u '--color=auto' -pruN before/bitfield-4-O2.s after/bitfield-4-O2.s
--- before/bitfield-4-O2.s      2024-09-06 00:14:05.084343596 -0300
+++ after/bitfield-4-O2.s       2024-09-05 23:44:18.400186871 -0300
@@ -29,14 +29,14 @@ main:
        mov     r0, #-1
        mov     r1, #-1
        mov     r2, #-1
-       push    {r4, lr}
-       sub     sp, sp, #16
+       push    {lr}
+       sub     sp, sp, #20
        strd    r0, [sp]
        str     r2, [sp, #8]
        ldm     sp, {r0, r1, r2}
-       mov     r4, #2097152
-       lsrs    r4, r4, #1
-       lsls    r4, r4, #1
+       mov     ip, #2097152
+       lsr     ip, ip, #1
+       lsl     ip, ip, #1
        push    {r4, r5, r6, r7, r8, r9, r10, fp}
        vpush.64        {d8, d9, d10, d11, d12, d13, d14, d15}
        movw    ip, #65535

I'm attaching the diff of all generated assembly files.

These are the configure options used:

/tmp/combined-tree-src/configure \
    SHELL=/bin/bash \
    --with-gnu-as \
    --with-gnu-ld \
    --enable-lto \
    --enable-shared \
    --without-included-gettext \
    --enable-nls \
    --with-system-zlib \
    --disable-sjlj-exceptions \
    --enable-gnu-unique-object \
    --enable-linker-build-id \
    --disable-libstdcxx-pch \
    --enable-c99 \
    --enable-clocale=gnu \
    --enable-libstdcxx-debug \
    --enable-long-long \
    --with-isl=no \
    --enable-threads=no \
    --disable-multiarch \
    --disable-multilib \
    --with-mode=thumb \
    --with-arch=armv8.1-m.main+mve.fp+fp.dp \
    --with-float=hard \
    --with-headers=yes \
    --with-native-system-header-dir=/include \
    --with-newlib \
    --enable-checking=yes \
    --disable-bootstrap \
    --disable-gdb \
    --enable-languages=c,c++,lto \
    --prefix=/tmp/thumb-m55-hard-eabi \
    --build=x86_64-pc-linux-gnu \
    --host=x86_64-pc-linux-gnu \
    --target=arm-eabi

Reply via email to