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

Reply via email to