https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84528
Bug ID: 84528
Summary: [8 Regression] gcc.c-torture/execute/960419-2.c -O3
fails with -fno-omit-frame-pointer
Product: gcc
Version: unknown
Status: UNCONFIRMED
Keywords: wrong-code
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: ktkachov at gcc dot gnu.org
Target Milestone: ---
Target: aarch64
Haven't determined yet if this is related to PR 84521 but
gcc.c-torture/execute/960419-2.c fails when compiled with -O3
-fno-omit-frame-pointer whereas it didn't in GCC 7.
The good code from GCC 7 is:
main:
stp x29, x30, [sp, -48]!
add x29, sp, 0
add x0, x29, 20
stp xzr, xzr, [x0]
str xzr, [x29, 36]
ldr w0, [x29, 24]
cbnz w0, .L2
ldr w0, [x29, 28]
cbnz w0, .L2
ldr w0, [x29, 32]
cbnz w0, .L2
ldr w0, [x29, 36]
cbnz w0, .L2
ldr w0, [x29, 40]
cbnz w0, .L2
bl exit
.L2:
bl abort
whereas the bad code from GCC 8 is:
main:
stp x29, x30, [sp, -48]!
mov x29, sp
ldr w0, [sp, 24]
str xzr, [sp, 36]
cbnz w0, .L2
ldr w0, [sp, 28]
cbnz w0, .L2
ldr w0, [sp, 32]
cbnz w0, .L2
ldr w0, [sp, 36]
cbnz w0, .L2
ldr w0, [sp, 40]
cbnz w0, .L2
bl exit
.L2:
bl abort