https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98959
Bug ID: 98959 Summary: ICE in extract_constrain_insn, at recog.c:2670 Product: gcc Version: 11.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: marxin at gcc dot gnu.org CC: luoxhu at gcc dot gnu.org, segher at gcc dot gnu.org Target Milestone: --- Host: x86_64-linux-gnu Target: ppc64le-linux-gnu The following fails: $ cat ice.i __attribute__((altivec(vector__))) unsigned __int128 e0( __attribute__((altivec(vector__))) unsigned __int128 v); void me0() { __attribute__((altivec(vector__))) unsigned __int128 dv = { ((31415926539) << 6)}; dv = e0(dv); if (dv[0] != 0) __builtin_abort(); } $ ppc64le-linux-gnu-gcc -fno-schedule-insns -O2 ice.i -c ice.i: In function ‘me0’: ice.i:8:1: error: insn does not satisfy its constraints: 8 | } | ^ (insn 48 5 49 2 (set (reg:V1TI 66 2) (rotate:V1TI (mem/u/c:V1TI (and:DI (reg/f:DI 9 9 [120]) (const_int -16 [0xfffffffffffffff0])) [0 S16 A128]) (const_int 64 [0x40]))) "ice.i":6:8 1102 {*vsx_le_permute_v1ti} (nil)) during RTL pass: pro_and_epilogue ice.i:8:1: internal compiler error: in extract_constrain_insn, at recog.c:2670 0x5c9c84 _fatal_insn(char const*, rtx_def const*, char const*, int, char const*) /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-ppc64le/build/gcc/rtl-error.c:108 0x5c9caa _fatal_insn_not_found(rtx_def const*, char const*, int, char const*) /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-ppc64le/build/gcc/rtl-error.c:118 0x5c9154 extract_constrain_insn(rtx_insn*) /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-ppc64le/build/gcc/recog.c:2670 0xa8f31c copyprop_hardreg_forward_1 /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-ppc64le/build/gcc/regcprop.c:831 0xa906a1 copyprop_hardreg_forward_bb_without_debug_insn(basic_block_def*) /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-ppc64le/build/gcc/regcprop.c:1210 0xae56eb prepare_shrink_wrap /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-ppc64le/build/gcc/shrink-wrap.c:451 0xae56eb try_shrink_wrapping(edge_def**, rtx_insn*) /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-ppc64le/build/gcc/shrink-wrap.c:674 0x86c3a9 thread_prologue_and_epilogue_insns() /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-ppc64le/build/gcc/function.c:6025 0x86c922 rest_of_handle_thread_prologue_and_epilogue /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-ppc64le/build/gcc/function.c:6510 0x86c922 execute /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-ppc64le/build/gcc/function.c:6586 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions.