public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug rtl-optimization/110095] New: RISC-V: unrecognizable insn during RTL pass: vregs with -O2 -mcpu=sifive-u74
@ 2023-06-02 16:26 matoro_gcc_bugzilla at matoro dot tk
  2023-06-02 21:00 ` [Bug rtl-optimization/110095] " pinskia at gcc dot gnu.org
  0 siblings, 1 reply; 2+ messages in thread
From: matoro_gcc_bugzilla at matoro dot tk @ 2023-06-02 16:26 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 110095
           Summary: RISC-V: unrecognizable insn during RTL pass: vregs
                    with -O2 -mcpu=sifive-u74
           Product: gcc
           Version: 13.1.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: rtl-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: matoro_gcc_bugzilla at matoro dot tk
  Target Milestone: ---

Not sure if this is a regression or not.  Minimized test case produced with
cvise.

$ cat test3.i
double CastDoubleToLong_x;
long __attribute__DrawAffineImage_x;
long CastDoubleToLong() {
  if (CastDoubleToLong_x)
    return 0;
  return CastDoubleToLong_x;
}
void __attribute__DrawAffineImage() {
  for (; __attribute__DrawAffineImage_x <= CastDoubleToLong();)
    ;
}

$ riscv64-unknown-linux-gnu-gcc -O2 -mcpu=sifive-u74 -c test3.i
test3.i: In function ‘__attribute__DrawAffineImage’:
test3.i:11:1: error: unrecognizable insn:
   11 | }
      | ^
(insn 9 8 10 2 (set (reg:DI 140)
        (if_then_else:DI (eq:DF (reg:DF 136 [ CastDoubleToLong_x.0_4 ])
                (reg:DF 142))
            (reg:DI 141)
            (const_int 0 [0]))) -1
     (nil))
during RTL pass: vregs
test3.i:11:1: internal compiler error: in extract_insn, at recog.cc:2791
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
See <https://bugs.gentoo.org/> for instructions.

Passing -fdisable-rtl-vregs does not fix the problem as the same issue appears
in sched1 pass; there is a little bit more context in the output.

$ riscv64-unknown-linux-gnu-gcc -O2 -mcpu=sifive-u74 -c test3.i
-fdisable-rtl-vregs                                                   
cc1: note: disable pass rtl-vregs for functions in the range of [0, 4294967295]
test3.i: In function ‘__attribute__DrawAffineImage’:
test3.i:11:1: error: unrecognizable insn:
   11 | }
      | ^
(insn 9 8 12 2 (set (reg:DI 140)
        (if_then_else:DI (eq:DF (reg:DF 136 [ CastDoubleToLong_x.0_4 ])
                (reg:DF 142))
            (reg:DI 141)
            (const_int 0 [0]))) -1
     (expr_list:REG_DEAD (reg:DF 142)
        (expr_list:REG_DEAD (reg:DI 141)
            (expr_list:REG_DEAD (reg:DF 136 [ CastDoubleToLong_x.0_4 ])
                (expr_list:REG_EQUAL (if_then_else:DI (eq:DF (reg:DF 136 [
CastDoubleToLong_x.0_4 ])
                            (const_double:DF 0.0 [0x0.0p+0]))
                        (reg:DI 141)
                        (const_int 0 [0]))
                    (nil))))))
during RTL pass: sched1
test3.i:11:1: internal compiler error: in extract_insn, at recog.cc:2791
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
See <https://bugs.gentoo.org/> for instructions.

Reducing optimization to -O1 removes the issue:
$ riscv64-unknown-linux-gnu-gcc -O1 -mcpu=sifive-u74 -c test3.i

Removing CPU tuning also removes the issue:
$ riscv64-unknown-linux-gnu-gcc -O2 -c test3.i

Clang has no problems (though I'm not sure if it actually supports optimization
for this CPU or if it's a no-op):
$ clang -O2 -mcpu=sifive-u74 -c test3.i


$ gcc --version --verbose
Using built-in specs.
COLLECT_AS_OPTIONS='--version'
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/riscv64-unknown-linux-gnu/13/lto-wrapper
gcc (Gentoo 13.1.1_p20230527 p3) 13.1.1 20230527
Copyright (C) 2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


Target: riscv64-unknown-linux-gnu
Configured with:
/var/tmp/portage/sys-devel/gcc-13.1.1_p20230527/work/gcc-13-20230527/configure
--host=riscv64-unknown-linux-gnu --build=riscv64-unknown-linux-gnu
--prefix=/usr --bindir=/usr/riscv64-unknown-linux-gnu/gcc-bin/13
--includedir=/usr/lib/gcc/riscv64-unknown-linux-gnu/13/include
--datadir=/usr/share/gcc-data/riscv64-unknown-linux-gnu/13
--mandir=/usr/share/gcc-data/riscv64-unknown-linux-gnu/13/man
--infodir=/usr/share/gcc-data/riscv64-unknown-linux-gnu/13/info
--with-gxx-include-dir=/usr/lib/gcc/riscv64-unknown-linux-gnu/13/include/g++-v13
--with-python-dir=/share/gcc-data/riscv64-unknown-linux-gnu/13/python
--enable-languages=c,c++ --enable-obsolete --enable-secureplt --disable-werror
--with-system-zlib --enable-nls --without-included-gettext
--disable-libunwind-exceptions --enable-checking=release
--with-bugurl=https://bugs.gentoo.org/ --with-pkgversion='Gentoo
13.1.1_p20230527 p3' --with-gcc-major-version-only --disable-esp
--enable-libstdcxx-time --enable-lto --disable-libstdcxx-pch --enable-shared
--enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu
--disable-multilib --disable-fixed-point --with-abi=lp64d --enable-libgomp
--disable-libssp --disable-libada --disable-cet --disable-systemtap
--disable-valgrind-annotations --disable-vtable-verify --disable-libvtv
--without-zstd --with-isl --disable-isl-version-check --enable-default-pie
--enable-default-ssp
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 13.1.1 20230527 (Gentoo 13.1.1_p20230527 p3) 
COLLECT_GCC_OPTIONS='--version' '-v' '-march=rv64imafdc_zicsr_zifencei'
'-mabi=lp64d' '-misa-spec=20191213' '-march=rv64imafdc_zicsr_zifencei'
'-dumpdir' 'a-'
 /usr/libexec/gcc/riscv64-unknown-linux-gnu/13/cc1 -quiet -v help-dummy -quiet
-dumpdir a- -dumpbase help-dummy -march=rv64imafdc_zicsr_zifencei -mabi=lp64d
-misa-spec=20191213 -march=rv64imafdc_zicsr_zifencei -version --version -o
/tmp/ccz9UPg6.s
GNU C17 (Gentoo 13.1.1_p20230527 p3) version 13.1.1 20230527
(riscv64-unknown-linux-gnu)
        compiled by GNU C version 13.1.1 20230527, GMP version 6.2.1, MPFR
version 4.2.0-p9, MPC version 1.3.1, isl version isl-0.26-GMP

GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
COLLECT_GCC_OPTIONS='--version' '-v' '-march=rv64imafdc_zicsr_zifencei'
'-mabi=lp64d' '-misa-spec=20191213' '-march=rv64imafdc_zicsr_zifencei'
'-dumpdir' 'a-'

/usr/lib/gcc/riscv64-unknown-linux-gnu/13/../../../../riscv64-unknown-linux-gnu/bin/as
-v --traditional-format -fpic -march=rv64imafdc_zicsr_zifencei
-march=rv64imafdc_zicsr_zifencei -mabi=lp64d -misa-spec=20191213 --version -o
/tmp/ccfR6jO2.o /tmp/ccz9UPg6.s
GNU assembler version 2.40.0 (riscv64-unknown-linux-gnu) using BFD version
(Gentoo 2.40 p5) 2.40.0
GNU assembler (Gentoo 2.40 p5) 2.40.0
Copyright (C) 2023 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or later.
This program has absolutely no warranty.
This assembler was configured for a target of `riscv64-unknown-linux-gnu'.
COMPILER_PATH=/usr/libexec/gcc/riscv64-unknown-linux-gnu/13/:/usr/libexec/gcc/riscv64-unknown-linux-gnu/13/:/usr/libexec/gcc/riscv64-unknown-linux-gnu/:/usr/lib/gcc/riscv64-unknown-linux-gnu/13/:/usr/lib/gcc/riscv64-unknown-linux-gnu/:/usr/lib/gcc/riscv64-unknown-linux-gnu/13/../../../../riscv64-unknown-linux-gnu/bin/
LIBRARY_PATH=/usr/lib/gcc/riscv64-unknown-linux-gnu/13/:/usr/lib/gcc/riscv64-unknown-linux-gnu/13/../../../../riscv64-unknown-linux-gnu/lib/:/lib64/lp64d/:/usr/lib64/lp64d/:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='--version' '-v' '-march=rv64imafdc_zicsr_zifencei'
'-mabi=lp64d' '-misa-spec=20191213' '-march=rv64imafdc_zicsr_zifencei'
'-dumpdir' 'a.'
 /usr/libexec/gcc/riscv64-unknown-linux-gnu/13/collect2 -plugin
/usr/libexec/gcc/riscv64-unknown-linux-gnu/13/liblto_plugin.so
-plugin-opt=/usr/libexec/gcc/riscv64-unknown-linux-gnu/13/lto-wrapper
-plugin-opt=-fresolution=/tmp/ccJlooLI.res -plugin-opt=-pass-through=-lgcc
-plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc
-plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s
--eh-frame-hdr -melf64lriscv -dynamic-linker /lib/ld-linux-riscv64-lp64d.so.1
-pie --version /usr/lib64/lp64d/Scrt1.o
/usr/lib/gcc/riscv64-unknown-linux-gnu/13/crti.o
/usr/lib/gcc/riscv64-unknown-linux-gnu/13/crtbeginS.o
-L/usr/lib/gcc/riscv64-unknown-linux-gnu/13
-L/usr/lib/gcc/riscv64-unknown-linux-gnu/13/../../../../riscv64-unknown-linux-gnu/lib
-L/lib64/lp64d -L/usr/lib64/lp64d /tmp/ccfR6jO2.o -lgcc --push-state
--as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s
--pop-state /usr/lib/gcc/riscv64-unknown-linux-gnu/13/crtendS.o
/usr/lib/gcc/riscv64-unknown-linux-gnu/13/crtn.o
collect2 version 13.1.1 20230527
/usr/lib/gcc/riscv64-unknown-linux-gnu/13/../../../../riscv64-unknown-linux-gnu/bin/ld
-plugin /usr/libexec/gcc/riscv64-unknown-linux-gnu/13/liblto_plugin.so
-plugin-opt=/usr/libexec/gcc/riscv64-unknown-linux-gnu/13/lto-wrapper
-plugin-opt=-fresolution=/tmp/ccJlooLI.res -plugin-opt=-pass-through=-lgcc
-plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc
-plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s
--eh-frame-hdr -melf64lriscv -dynamic-linker /lib/ld-linux-riscv64-lp64d.so.1
-pie --version /usr/lib64/lp64d/Scrt1.o
/usr/lib/gcc/riscv64-unknown-linux-gnu/13/crti.o
/usr/lib/gcc/riscv64-unknown-linux-gnu/13/crtbeginS.o
-L/usr/lib/gcc/riscv64-unknown-linux-gnu/13
-L/usr/lib/gcc/riscv64-unknown-linux-gnu/13/../../../../riscv64-unknown-linux-gnu/lib
-L/lib64/lp64d -L/usr/lib64/lp64d /tmp/ccfR6jO2.o -lgcc --push-state
--as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s
--pop-state /usr/lib/gcc/riscv64-unknown-linux-gnu/13/crtendS.o
/usr/lib/gcc/riscv64-unknown-linux-gnu/13/crtn.o
GNU ld (Gentoo 2.40 p5) 2.40.0
Copyright (C) 2023 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) a later version.
This program has absolutely no warranty.
COLLECT_GCC_OPTIONS='--version' '-v' '-march=rv64imafdc_zicsr_zifencei'
'-mabi=lp64d' '-misa-spec=20191213' '-march=rv64imafdc_zicsr_zifencei'
'-dumpdir' 'a.'

^ permalink raw reply	[flat|nested] 2+ messages in thread

* [Bug rtl-optimization/110095] RISC-V: unrecognizable insn during RTL pass: vregs with -O2 -mcpu=sifive-u74
  2023-06-02 16:26 [Bug rtl-optimization/110095] New: RISC-V: unrecognizable insn during RTL pass: vregs with -O2 -mcpu=sifive-u74 matoro_gcc_bugzilla at matoro dot tk
@ 2023-06-02 21:00 ` pinskia at gcc dot gnu.org
  0 siblings, 0 replies; 2+ messages in thread
From: pinskia at gcc dot gnu.org @ 2023-06-02 21:00 UTC (permalink / raw)
  To: gcc-bugs

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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|---                         |DUPLICATE

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Dup of bug 109760.

*** This bug has been marked as a duplicate of bug 109760 ***

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2023-06-02 21:00 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-06-02 16:26 [Bug rtl-optimization/110095] New: RISC-V: unrecognizable insn during RTL pass: vregs with -O2 -mcpu=sifive-u74 matoro_gcc_bugzilla at matoro dot tk
2023-06-02 21:00 ` [Bug rtl-optimization/110095] " pinskia at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).