https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117444
Bug ID: 117444
Summary: [15 regression] Assembler output changes after
r15-4756-g06bc3a734e8890
Product: gcc
Version: 15.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: seurer at gcc dot gnu.org
Target Milestone: ---
g:06bc3a734e88908cad1d3bf547a722b3f9597a0d, r15-4756-g06bc3a734e8890
make -k check-gcc
RUNTESTFLAGS="powerpc.exp=gcc.target/powerpc/safe-indirect-jump-3.c"
FAIL: gcc.target/powerpc/safe-indirect-jump-3.c scan-assembler crset
FAIL: gcc.target/powerpc/safe-indirect-jump-3.c scan-assembler beqctr-
FAIL: gcc.target/powerpc/safe-indirect-jump-3.c scan-assembler b \\$
commit 06bc3a734e88908cad1d3bf547a722b3f9597a0d (HEAD)
Author: Andi Kleen <[email protected]>
Date: Tue Oct 15 13:15:09 2024 -0700
Disable -fbit-tests and -fjump-tables at -O0
I should note this test case uses a deprecated option:
cc1: warning: '-mno-speculate-indirect-jumps' is deprecated and not recommended
in any circumstances
There are significant assembler differences:
seurer@ltcden2-lp1:~/gcc/git/build/gcc-test$ diff
safe-indirect-jump-3.s.r15-4755 safe-indirect-jump-3.s.r15-4756
25,26c25,26
< cmplwi 0,2,7
< bgt 0,.L2
---
> cmpwi 0,2,7
> beq 0,.L2
28,50c28,66
< sldi 9,2,2
< pla 2,.L4@pcrel
< add 2,9,2
< lwz 2,0(2)
< extsw 9,2
< pla 2,.L4@pcrel
< add 2,9,2
< mtctr 2
< crset 2
< beqctr- 0
< b $
< .p2align 2
< .align 2
< .L4:
< .long .L11-.L4
< .long .L10-.L4
< .long .L9-.L4
< .long .L8-.L4
< .long .L7-.L4
< .long .L6-.L4
< .long .L5-.L4
< .long .L3-.L4
< .L2:
---
> cmpwi 0,2,7
> bgt 0,.L3
> lwz 2,48(31)
> cmpwi 0,2,6
> beq 0,.L4
> lwz 2,48(31)
> cmpwi 0,2,6
> bgt 0,.L3
> lwz 2,48(31)
> cmpwi 0,2,5
> beq 0,.L5
> lwz 2,48(31)
> cmpwi 0,2,5
> bgt 0,.L3
> lwz 2,48(31)
> cmpwi 0,2,4
> beq 0,.L6
> lwz 2,48(31)
> cmpwi 0,2,4
> bgt 0,.L3
> lwz 2,48(31)
> cmpwi 0,2,3
> beq 0,.L7
> lwz 2,48(31)
> cmpwi 0,2,3
> bgt 0,.L3
> lwz 2,48(31)
> cmpwi 0,2,2
> beq 0,.L8
> lwz 2,48(31)
> cmpwi 0,2,2
> bgt 0,.L3
> lwz 2,48(31)
> cmpwi 0,2,0
> beq 0,.L9
> lwz 2,48(31)
> cmpwi 0,2,1
> beq 0,.L10
(and a bunch of label differences)