From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 6C42F385783C; Mon, 31 Aug 2020 09:28:53 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 6C42F385783C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1598866133; bh=VcoyMF1Q6Oz9edJkViFb5FJfe1GVDL+0gOhMX9FfoCg=; h=From:To:Subject:Date:In-Reply-To:References:From; b=A5pZmdHvTDr+u4z9m3mcvS0MEdmDHxtyu3B03FOGKEfBT3fCy2teq4vCfhX64Svr3 yABerNp0vyFj1tg0VLQzjLwqNK1p3k9rgD+ygvPzRmhtYHLgn8SkzktkdWM9TFT7fc HzkbO0BMNOjMmdKpTcvOlSbqkMpPRS9RSTzlPtso= From: "asolokha at gmx dot com" To: gcc-bugs@gcc.gnu.org Subject: [Bug target/96791] ICE in convert_mode_scalar, at expr.c:412 Date: Mon, 31 Aug 2020 09:28:52 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: target X-Bugzilla-Version: 11.0 X-Bugzilla-Keywords: ice-on-valid-code X-Bugzilla-Severity: normal X-Bugzilla-Who: asolokha at gmx dot com X-Bugzilla-Status: NEW X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: acsawdey at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: gcc-bugs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-bugs mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 31 Aug 2020 09:28:53 -0000 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D96791 --- Comment #6 from Arseny Solokha --- There's also a seemingly related case where gcc ICES in branch if (GET_MODE_CLASS (to_mode) =3D=3D MODE_PARTIAL_INT) instead. The following testcase is reduced from gcc/testsuite/gcc.target/powerpc/pr96125.c: void __attribute__ ((target ("cpu=3Dpower10"))) le (__vector_quad *ql) { __vector_quad hg; __builtin_mma_xxsetaccz (&hg); *ql =3D hg; } % powerpc-e300c3-linux-gnu-gcc-11.0.0 -c ihgsd1rx.c during RTL pass: expand ihgsd1rx.c: In function 'le': ihgsd1rx.c:7:7: internal compiler error: in convert_mode_scalar, at expr.c:= 394 7 | *ql =3D hg; | ~~~~^~~~ 0x5ef679 convert_mode_scalar =20=20=20=20=20=20=20 /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20200830/wo= rk/gcc-11-20200830/gcc/expr.c:394 0xa2f11b convert_modes(machine_mode, machine_mode, rtx_def*, int) =20=20=20=20=20=20=20 /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20200830/wo= rk/gcc-11-20200830/gcc/expr.c:737 0xa0ea12 extract_integral_bit_field =20=20=20=20=20=20=20 /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20200830/wo= rk/gcc-11-20200830/gcc/expmed.c:1961 0xa0ea12 extract_bit_field_1 =20=20=20=20=20=20=20 /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20200830/wo= rk/gcc-11-20200830/gcc/expmed.c:1846 0xa0f0b2 extract_bit_field(rtx_def*, poly_int<1u, unsigned long>, poly_int<= 1u, unsigned long>, int, rtx_def*, machine_mode, machine_mode, bool, rtx_def**) =20=20=20=20=20=20=20 /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20200830/wo= rk/gcc-11-20200830/gcc/expmed.c:2118 0xa19b88 expand_misaligned_mem_ref =20=20=20=20=20=20=20 /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20200830/wo= rk/gcc-11-20200830/gcc/expr.c:8620 0xa284cf expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) =20=20=20=20=20=20=20 /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20200830/wo= rk/gcc-11-20200830/gcc/expr.c:10517 0xa34c1b store_expr(tree_node*, rtx_def*, int, bool, bool) =20=20=20=20=20=20=20 /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20200830/wo= rk/gcc-11-20200830/gcc/expr.c:5858 0xa36f21 expand_assignment(tree_node*, tree_node*, bool) =20=20=20=20=20=20=20 /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20200830/wo= rk/gcc-11-20200830/gcc/expr.c:5594 0x90062f expand_gimple_stmt_1 =20=20=20=20=20=20=20 /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20200830/wo= rk/gcc-11-20200830/gcc/cfgexpand.c:3749 0x90062f expand_gimple_stmt =20=20=20=20=20=20=20 /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20200830/wo= rk/gcc-11-20200830/gcc/cfgexpand.c:3847 0x90655a expand_gimple_basic_block =20=20=20=20=20=20=20 /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20200830/wo= rk/gcc-11-20200830/gcc/cfgexpand.c:5888 0x90814f execute =20=20=20=20=20=20=20 /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20200830/wo= rk/gcc-11-20200830/gcc/cfgexpand.c:6572 And compiling w/ -O1 yields the following instead: % powerpc-e300c3-linux-gnu-gcc-11.0.0 -O1 -c ihgsd1rx.c ihgsd1rx.c: In function 'le': ihgsd1rx.c:8:1: error: insn does not satisfy its constraints: 8 | } | ^ (insn 53 52 54 2 (set (mem/c:POI (plus:SI (reg/f:SI 1 1) (const_int 16 [0x10])) [3 %sfp+-80 S32 A128]) (reg:POI 32 0 [ _1 ])) 2190 {*movpoi} (nil)) during RTL pass: pro_and_epilogue ihgsd1rx.c:8:1: internal compiler error: in extract_constrain_insn, at recog.c:2195 0x65b80d _fatal_insn(char const*, rtx_def const*, char const*, int, char const*) =20=20=20=20=20=20=20 /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20200830/wo= rk/gcc-11-20200830/gcc/rtl-error.c:108 0x65b839 _fatal_insn_not_found(rtx_def const*, char const*, int, char const= *) =20=20=20=20=20=20=20 /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20200830/wo= rk/gcc-11-20200830/gcc/rtl-error.c:118 0x659e71 extract_constrain_insn(rtx_insn*) =20=20=20=20=20=20=20 /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20200830/wo= rk/gcc-11-20200830/gcc/recog.c:2195 0xcf731c copyprop_hardreg_forward_1 =20=20=20=20=20=20=20 /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20200830/wo= rk/gcc-11-20200830/gcc/regcprop.c:802 0xcf8101 copyprop_hardreg_forward_bb_without_debug_insn(basic_block_def*) =20=20=20=20=20=20=20 /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20200830/wo= rk/gcc-11-20200830/gcc/regcprop.c:1181 0xd56f3d prepare_shrink_wrap =20=20=20=20=20=20=20 /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20200830/wo= rk/gcc-11-20200830/gcc/shrink-wrap.c:451 0xd56f3d try_shrink_wrapping(edge_def**, rtx_insn*) =20=20=20=20=20=20=20 /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20200830/wo= rk/gcc-11-20200830/gcc/shrink-wrap.c:674 0xa92dc0 thread_prologue_and_epilogue_insns() =20=20=20=20=20=20=20 /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20200830/wo= rk/gcc-11-20200830/gcc/function.c:5909 0xa934c6 rest_of_handle_thread_prologue_and_epilogue =20=20=20=20=20=20=20 /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20200830/wo= rk/gcc-11-20200830/gcc/function.c:6394 0xa934c6 execute =20=20=20=20=20=20=20 /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20200830/wo= rk/gcc-11-20200830/gcc/function.c:6470 (Of course I can file a separate PR if this case is not related to the one reported in comment 0.)=