public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/109932] New: ICE in in extract_insn, at recog.cc:2791 on ppc64le with -mno-vsx
@ 2023-05-22 17:05 jamborm at gcc dot gnu.org
  2023-05-24  2:23 ` [Bug target/109932] " linkw at gcc dot gnu.org
                   ` (9 more replies)
  0 siblings, 10 replies; 11+ messages in thread
From: jamborm at gcc dot gnu.org @ 2023-05-22 17:05 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 109932
           Summary: ICE in in extract_insn, at recog.cc:2791 on ppc64le
                    with -mno-vsx
           Product: gcc
           Version: 14.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: jamborm at gcc dot gnu.org
  Target Milestone: ---
              Host: x86_64-linux
            Target: ppc64le-linux-gnu

Using a cross compiler (revision ad0f80d945c) configured with

/home/worker/buildworker/tiber-gcc-trunk-ppc64le/build/configure
--enable-languages=c,c++,fortran,rust,m2 --disable-bootstrap
--disable-libsanitizer --disable-multilib --enable-checking=release
--prefix=/home/worker/cross --target=ppc64le-linux-gnu
--with-as=/usr/bin/powerpc64le-suse-linux-as

and running it on the following testcase (originally
CodeGen/PowerPC/builtins-ppc-int128.c /tmp/test.c from clang
testsuite)

-----------------------------------------------------------------
#include <altivec.h>

vector signed __int128 res_vslll;
unsigned long long aull[2] = { 1L, 2L };

void testVectorInt128Pack(){
  res_vslll = __builtin_pack_vector_int128(aull[0], aull[1]);
  __builtin_unpack_vector_int128(res_vslll, 0);
  __builtin_unpack_vector_int128(res_vslll, 1);
}
-----------------------------------------------------------------

with option -mno-vsx resuts in an ICE:

~/cross/bin/ppc64le-linux-gnu-gcc /tmp/test.c -mno-vsx
/tmp/test.c: In function ‘testVectorInt128Pack’:
/tmp/test.c:10:1: error: unrecognizable insn:
   10 | }
      | ^
(insn 9 8 12 2 (set (reg:V1TI 124)
        (unspec:V1TI [
                (reg:DI 117 [ _1 ])
                (reg:DI 118 [ _2 ])
            ] UNSPEC_PACK_128BIT)) "/tmp/test.c":7:15 -1
     (nil))
during RTL pass: vregs
/tmp/test.c:10:1: internal compiler error: in extract_insn, at recog.cc:2791
0x62c70b _fatal_insn(char const*, rtx_def const*, char const*, int, char
const*)
       
/home/worker/buildworker/tiber-gcc-trunk-ppc64le/build/gcc/rtl-error.cc:108
0x62c727 _fatal_insn_not_found(rtx_def const*, char const*, int, char const*)
       
/home/worker/buildworker/tiber-gcc-trunk-ppc64le/build/gcc/rtl-error.cc:116
0x62bb8a extract_insn(rtx_insn*)
       
/home/worker/buildworker/tiber-gcc-trunk-ppc64le/build/gcc/recog.cc:2791
0x8dacb0 instantiate_virtual_regs_in_insn
       
/home/worker/buildworker/tiber-gcc-trunk-ppc64le/build/gcc/function.cc:1611
0x8dacb0 instantiate_virtual_regs
       
/home/worker/buildworker/tiber-gcc-trunk-ppc64le/build/gcc/function.cc:1984
0x8dacb0 execute
       
/home/worker/buildworker/tiber-gcc-trunk-ppc64le/build/gcc/function.cc:2033


I guess we should error out earlier and more user-friendly when
expanding the built-ins?

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

end of thread, other threads:[~2023-06-20  9:42 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-05-22 17:05 [Bug target/109932] New: ICE in in extract_insn, at recog.cc:2791 on ppc64le with -mno-vsx jamborm at gcc dot gnu.org
2023-05-24  2:23 ` [Bug target/109932] " linkw at gcc dot gnu.org
2023-06-12  6:10 ` cvs-commit at gcc dot gnu.org
2023-06-13  8:08 ` cvs-commit at gcc dot gnu.org
2023-06-20  3:20 ` cvs-commit at gcc dot gnu.org
2023-06-20  3:20 ` cvs-commit at gcc dot gnu.org
2023-06-20  3:21 ` cvs-commit at gcc dot gnu.org
2023-06-20  3:21 ` cvs-commit at gcc dot gnu.org
2023-06-20  8:24 ` cvs-commit at gcc dot gnu.org
2023-06-20  9:30 ` cvs-commit at gcc dot gnu.org
2023-06-20  9:42 ` linkw 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).