https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93174
Bug ID: 93174 Summary: [10 Regression] ICE building glibc __sha512_process_block for i686 Product: gcc Version: 10.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: jsm28 at gcc dot gnu.org Target Milestone: --- Target: i686-* Created attachment 47597 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=47597&action=edit Preprocessed source The following ICE appears building glibc for i686-gnu with GCC trunk (tested with r279905). For some reason it doesn't appear building i686-pc-linux-gnu glibc (in my bot's testing) although I can reproduce the same ICE building the preprocessed source with an x86_64-linux-gnu compiler with -m32. Compile with -O2, and -m32 if using a 86-bit compiler. Based on my bot's results, this is a recent regression on trunk (but I haven't tested using fixed testcase sources and variable compiler). In file included from sha512.c:238: ./sha512-block.c: In function '__sha512_process_block': ./sha512-block.c:105:1: error: unrecognizable insn: (insn 735 734 49 2 (parallel [ (set (reg:CCC 17 flags) (compare:CCC (zero_extend:DI (plus:SI (plus:SI (ltu:SI (reg:CC 17 flags) (const_int 0 [0])) (mem/j:SI (plus:SI (reg:SI 5 di [277]) (const_int 68 [0x44])) [12 ctx_90(D)->D.4378.total+4 S4 A32])) (reg:SI 1 dx [ lolen+4 ]))) (plus:DI (zero_extend:DI (reg:SI 1 dx [ lolen+4 ])) (ltu:DI (reg:CC 17 flags) (const_int 0 [0]))))) (set (mem/j:SI (plus:SI (reg:SI 5 di [277]) (const_int 68 [0x44])) [12 ctx_90(D)->D.4378.total+4 S4 A32]) (plus:SI (plus:SI (ltu:SI (reg:CC 17 flags) (const_int 0 [0])) (mem/j:SI (plus:SI (reg:SI 5 di [277]) (const_int 68 [0x44])) [12 ctx_90(D)->D.4378.total+4 S4 A32])) (reg:SI 1 dx [ lolen+4 ]))) ]) "./sha512-block.c":26:36 -1 (nil)) during RTL pass: split2 ./sha512-block.c:105:1: internal compiler error: in extract_insn, at recog.c:2294 0x5a6f14 _fatal_insn(char const*, rtx_def const*, char const*, int, char const*) /scratch/jmyers/glibc/many10/src/gcc/gcc/rtl-error.c:108 0x5a6f30 _fatal_insn_not_found(rtx_def const*, char const*, int, char const*) /scratch/jmyers/glibc/many10/src/gcc/gcc/rtl-error.c:116 0xc3a4a3 extract_insn(rtx_insn*) /scratch/jmyers/glibc/many10/src/gcc/gcc/recog.c:2294 0xc3a511 extract_insn_cached(rtx_insn*) /scratch/jmyers/glibc/many10/src/gcc/gcc/recog.c:2183 0x93c699 cleanup_subreg_operands(rtx_insn*) /scratch/jmyers/glibc/many10/src/gcc/gcc/final.c:3312 0xc3881f split_insn /scratch/jmyers/glibc/many10/src/gcc/gcc/recog.c:2920 0xc3c93e split_all_insns() /scratch/jmyers/glibc/many10/src/gcc/gcc/recog.c:2988 0xc3ca78 rest_of_handle_split_before_sched2 /scratch/jmyers/glibc/many10/src/gcc/gcc/recog.c:4015 0xc3ca78 execute /scratch/jmyers/glibc/many10/src/gcc/gcc/recog.c:4054 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.