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

            Bug ID: 116604
           Summary: [15 regression] regressions on aarch64 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: aarch64

Since commit r15-1619-g3b9b8d6cfdf593 we see this vectorization regression on
aarch64-linux-gnu:

Running gcc:gcc.target/aarch64/sve/pcs/aarch64-sve-pcs.exp ...
FAIL: gcc.target/aarch64/sve/pcs/args_1.c -march=armv8.2-a+sve
-fno-stack-protector  check-function-bodies callee_pred

The failure is:

body: \taddvl   sp, sp, #-1
\tstr   p[0-9]+, \[sp\]
\tstr   p[0-9]+, \[sp, #1, mul vl\]
\tldr   (p[0-9]+), \[x0\]
\tldr   (p[0-9]+), \[x1\]
\tbrkpa (p[0-7])\.b, p0/z, p1\.b, p2\.b
\tbrkpb (p[0-7])\.b, \3/z, p3\.b, \1\.b
\tbrka  p0\.b, \4/z, \2\.b
\tldr   p[0-9]+, \[sp\]
\tldr   p[0-9]+, \[sp, #1, mul vl\]
\taddvl sp, sp, #1
\tret

against:        addvl   sp, sp, #-1
        str     p14, [sp]
        str     p15, [sp, #1, mul vl]
        mov     p14.b, p3.b
        ldr     p15, [x0]
        ldr     p3, [x1]
        brkpa   p0.b, p0/z, p1.b, p2.b
        brkpb   p0.b, p0/z, p14.b, p15.b
        brka    p0.b, p0/z, p3.b
        ldr     p14, [sp]
        ldr     p15, [sp, #1, mul vl]
        addvl   sp, sp, #1
        ret

The difference in expected vs actual is that there's an extra instruction "mov
p14.b, p3.b", and also in the brkpb instruction p14.b is used instead of the
expected p3.b.

We also see regressions in other testcases on arm-linux-gnueabihf and yet
others on arm-none-eabi, but I'll file separate bugzillas for those.
  • [Bug target/116604] New: [... thiago.bauermann at linaro dot org via Gcc-bugs

Reply via email to