https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101915
Martin Liška <marxin at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |marxin at gcc dot gnu.org Last reconfirmed| |2021-08-23 Status|UNCONFIRMED |NEW Ever confirmed|0 |1 --- Comment #6 from Martin Liška <marxin at gcc dot gnu.org> --- Reduced test-case: $ cat par_ops.i typedef int int64_t __attribute__((__mode__(__DI__))); typedef int64_t int64; int64 int64_bit_3_r0, int64_bit_3_s0, int64_bit_3_r1, int64_bit_3_s1, int64_bit_3_r3, int64_bit_3_s3; int int64_bit_3_iterations; void int64_bit_3() { int64 i0 = (int64_bit_3_s0 << 2) - 1; while (int64_bit_3_iterations--) { i0 -= 1; int64_bit_3_s0 ^= int64_bit_3_r0 |= i0; int64_bit_3_s1 ^= int64_bit_3_r1 |= int64_bit_3_s3 ^= int64_bit_3_r3 |= int64_bit_3_s3; } } $ ./xgcc -B. par_ops.i -c -O2 par_ops.i: In function ‘int64_bit_3’: par_ops.i:16:1: error: unrecognizable insn: 16 | } | ^ (insn 179 180 119 3 (set (reg/v:DI 4 r4 [orig:53 i0 ] [53]) (plus:DI (reg:DI 10 r10 [orig:42 _2 ] [42]) (const_int -1 [0xffffffffffffffff]))) -1 (nil)) during RTL pass: cprop_hardreg par_ops.i:16:1: internal compiler error: in extract_insn, at recog.c:2769 0x665017 _fatal_insn(char const*, rtx_def const*, char const*, int, char const*) /home/marxin/Programming/gcc2/gcc/rtl-error.c:108 0x665033 _fatal_insn_not_found(rtx_def const*, char const*, int, char const*) /home/marxin/Programming/gcc2/gcc/rtl-error.c:116 0x6632e5 extract_insn(rtx_insn*) /home/marxin/Programming/gcc2/gcc/recog.c:2769 0xcef2b8 extract_constrain_insn(rtx_insn*) /home/marxin/Programming/gcc2/gcc/recog.c:2668 0xcf4167 copyprop_hardreg_forward_1 /home/marxin/Programming/gcc2/gcc/regcprop.c:825 0xcf5053 execute /home/marxin/Programming/gcc2/gcc/regcprop.c:1390 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.