https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90357
Bug ID: 90357
Summary: [9 regression][MIPS] New FAIL:
gcc.c-torture/execute/20080502-1.c -O0 start with
r269880
Product: gcc
Version: 9.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: rtl-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: paul.hua.gm at gmail dot com
Target Milestone: ---
Created attachment 46300
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=46300&action=edit
preprocessed .i file
Hi:
There are some regressions start with r269880. The r269880 try to forward SRC
into the next instruction. Take 20080502-1.c as a example, it fails cause they
use the same reg between src and dest.
good asm:
81 ld $2,%got_page(.LC1)($28)
82 ld $3,%got_ofst(.LC1+8)($2)
83 ld $2,%got_ofst(.LC1)($2)
84 dmtc1 $2,$f12
85 dmtc1 $3,$f13
after r269880:
81 ld $2,%got_page(.LC1)($28)
82 ld $3,%got_ofst(.LC1+8)($2)
83 ld $2,%got_ofst(.LC1)($2)
84 ldc1 $f12,%got_ofst(.LC1)($2)
85 ldc1 $f13,%got_ofst(.LC1+8)($2)
The line 83 $2 is dead, line 84 get the wrong address.
build cmd:
cc1 -fpreprocessed 20080502-1.i -mel -quiet -dumpbase 20080502-1.c
-march=mips64r2 -mabi=64 -mllsc -mips64r2 -mno-shared -auxbase 20080502-1 -O0
-w -version -fdiagnostics-color=never -fno-diagnostics-show-caret
-fno-diagnostics-show-line-numbers -o 20080502-1.s