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

            Bug ID: 83675
           Summary: [8 regression] Many SPARC tests FAIL with
                    unrecognizable insn
           Product: gcc
           Version: 8.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: middle-end
          Assignee: unassigned at gcc dot gnu.org
          Reporter: ro at gcc dot gnu.org
                CC: ebotcazou at gcc dot gnu.org, rsandifo at gcc dot gnu.org
  Target Milestone: ---
              Host: sparc-sun-solaris2.*
            Target: sparc-sun-solaris2.*
             Build: sparc-sun-solaris2.*

Between 20180102 and 20180103, man SPARC tests started to FAIL like this:

FAIL: gcc.dg/vect/pr43842.c (internal compiler error)
FAIL: gcc.dg/vect/pr43842.c (test for excess errors)

/vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.dg/vect/pr43842.c: In function
'int161':
/vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.dg/vect/pr43842.c:40:1: error:
unrecognizable insn:
(insn 28 27 29 5 (parallel [
            (set (reg:SI 131)
                (plus:SI (reg:SI 129)
                    (const_int 0 [0])))
            (set (zero_extract:DI (reg:DI 102 %gsr)
                    (const_int 32 [0x20])
                    (const_int 32 [0x20]))
                (zero_extend:DI (plus:SI (reg:SI 129)
                        (const_int 0 [0]))))
        ]) -1
     (nil))
during RTL pass: vregs
/vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.dg/vect/pr43842.c:40:1: internal
compiler error: in extract_insn, at recog.c:2304
0xa07177 _fatal_insn(char const*, rtx_def const*, char const*, int, char
const*)
        /vol/gcc/src/hg/trunk/local/gcc/rtl-error.c:108
0xa071a7 _fatal_insn_not_found(rtx_def const*, char const*, int, char const*)
        /vol/gcc/src/hg/trunk/local/gcc/rtl-error.c:116
0x9c8027 extract_insn(rtx_insn*)
        /vol/gcc/src/hg/trunk/local/gcc/recog.c:2304
0x72f38b instantiate_virtual_regs_in_insn
        /vol/gcc/src/hg/trunk/local/gcc/function.c:1646
0x72f38b instantiate_virtual_regs
        /vol/gcc/src/hg/trunk/local/gcc/function.c:1967
0x72f38b execute
        /vol/gcc/src/hg/trunk/local/gcc/function.c:2016

The failure can be reproduced with

$ cc1 -fpreprocessed pr43842.i -quiet -mcpu=ultrasparc -mvis -O2
-ftree-vectorize -o pr43842.s

A reghunt identified this patch as the culprit:

The first bad revision is:
changeset:   43046:975c3cdb3b00
user:        rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4
date:        Tue Jan 02 18:26:27 2018 +0000
summary:     Remove vec_perm_const optab

2018-01-02  Richard Sandiford  <richard.sandif...@linaro.org>

        * Makefile.in (OBJS): Add vec-perm-indices.o.
        * vec-perm-indices.h: New file.
        * vec-perm-indices.c: Likewise.
        * target.h (vec_perm_indices): Replace with a forward class
        declaration.
        (auto_vec_perm_indices): Move to vec-perm-indices.h.
[...]

  Rainer

Reply via email to