https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102133
Bug ID: 102133 Summary: [12 Regression] ICE in set_rtl building libgcc __muldc3 for 32-bit SPARC Product: gcc Version: 12.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: jsm28 at gcc dot gnu.org CC: liuhongt at gcc dot gnu.org Target Milestone: --- Target: sparc*-*-* Created attachment 51380 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=51380&action=edit preprocessed source commit 7218c2ec365ce95f5a1012a6eb425b0a36aec6bf, "Make sure we're playing with integral modes before call extract_integral_bit_field.", introduces the following ICE building libgcc for 32-bit SPARC (32-bit multilib for sparc64-linux-gnu). Compile the attached test with -m32 -O2. during RTL pass: expand /scratch/jmyers/glibc/many12/src/gcc/libgcc/libgcc2.c: In function '__muldc3': /scratch/jmyers/glibc/many12/src/gcc/libgcc/libgcc2.c:1947:1: internal compiler error: in set_rtl, at cfgexpand.c:200 1947 | CONCAT3(__mul,MODE,3) (MTYPE a, MTYPE b, MTYPE c, MTYPE d) | ^~~~~~~~ 0x7ccbe9 set_rtl /scratch/jmyers/glibc/many12/src/gcc/gcc/cfgexpand.c:179 0x7cf028 set_parm_rtl(tree_node*, rtx_def*) /scratch/jmyers/glibc/many12/src/gcc/gcc/cfgexpand.c:1401 0x98a451 assign_parm_setup_reg /scratch/jmyers/glibc/many12/src/gcc/gcc/function.c:3401 0x98a451 assign_parms /scratch/jmyers/glibc/many12/src/gcc/gcc/function.c:3707 0x98de2c expand_function_start(tree_node*) /scratch/jmyers/glibc/many12/src/gcc/gcc/function.c:5163 0x7e11b9 execute /scratch/jmyers/glibc/many12/src/gcc/gcc/cfgexpand.c:6692 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.