Following causes ICE: $ ./xgcc -B. /home/marxin/Programming/gcc/gcc/testsuite/gcc.dg/ipa/pr82001.c -mno-direct-move -O3 xgcc: warning: ‘-mno-direct-move’ is deprecated cc1: warning: ‘-mno-direct-move’ is deprecated /home/marxin/Programming/gcc/gcc/testsuite/gcc.dg/ipa/pr82001.c: In function ‘mulhi’: /home/marxin/Programming/gcc/gcc/testsuite/gcc.dg/ipa/pr82001.c:19:1: error: could not split insn 19 | } | ^ (insn 15 10 16 (set (reg/i:DI 3 3) (sign_extend:DI (reg:SI 32 0 [orig:124 a ] [124]))) "/home/marxin/Programming/gcc/gcc/testsuite/gcc.dg/ipa/pr82001.c":19 38 {extendsidi2} (expr_list:REG_DEAD (reg:SI 32 0 [orig:124 a ] [124]) (nil))) during RTL pass: final /home/marxin/Programming/gcc/gcc/testsuite/gcc.dg/ipa/pr82001.c:19:1: internal compiler error: in final_scan_insn_1, at final.c:3070 0x10e36a27 _fatal_insn(char const*, rtx_def const*, char const*, int, char const*) ../../gcc/rtl-error.c:108 0x108a0cc7 final_scan_insn_1 ../../gcc/final.c:3070 0x108a1187 final_scan_insn(rtx_insn*, _IO_FILE*, int, int, int*) ../../gcc/final.c:3149 0x1089dd7b final_1 ../../gcc/final.c:2019 0x108a547f rest_of_handle_final ../../gcc/final.c:4660 0x108a599f execute ../../gcc/final.c:4734
It does not fail on GCC 7 or GCC 9, but it does still fail like this on GCC 8. Confirmed.
I don't know how I reproduced this before, but I cannot any more.
I can confirm that.