https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69773
--- Comment #2 from Qirun Zhang <helloqirun at gmail dot com> --- pr65693 fails to compile at -O0 with the same (similar) trace. $ gcc-trunk -v Using built-in specs. COLLECT_GCC=gcc-trunk COLLECT_LTO_WRAPPER=/home/absozero/trunk/root-gcc/libexec/gcc/x86_64-pc-linux-gnu/6.0.0/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: ../gcc/configure --prefix=/home/absozero/trunk/root-gcc --enable-languages=c,c++ --disable-werror --enable-multilib Thread model: posix gcc version 6.0.0 20160226 (experimental) [trunk revision 233763] (GCC) $ gcc-trunk pr65693.c pr65693.c: In function 'foo': pr65693.c:13:1: error: unable to find a register to spill } ^ pr65693.c:13:1: error: this is the insn: (insn 11 35 12 2 (parallel [ (set (reg:DI 96) (udiv:DI (reg:DI 94) (reg:DI 106))) (set (reg:DI 107 [97]) (umod:DI (reg:DI 94) (reg:DI 106))) (clobber (reg:CC 17 flags)) ]) pr65693.c:10 358 {*udivmoddi4} (expr_list:REG_UNUSED (reg:DI 107 [97]) (expr_list:REG_DEAD (reg:DI 106) (expr_list:REG_DEAD (reg:DI 94) (expr_list:REG_UNUSED (reg:CC 17 flags) (nil)))))) pr65693.c:13:1: internal compiler error: in assign_by_spills, at lra-assigns.c:1417 0xaf9138 _fatal_insn(char const*, rtx_def const*, char const*, int, char const*) ../../gcc/gcc/rtl-error.c:108 0x9f4515 assign_by_spills ../../gcc/gcc/lra-assigns.c:1417 0x9f4bc3 lra_assign() ../../gcc/gcc/lra-assigns.c:1590 0x9f064b lra(_IO_FILE*) ../../gcc/gcc/lra.c:2331 0x9a76f9 do_reload ../../gcc/gcc/ira.c:5396 0x9a76f9 execute ../../gcc/gcc/ira.c:5567 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <http://gcc.gnu.org/bugs.html> for instructions.