https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94185
--- Comment #3 from Zdenek Sojka <zsojka at seznam dot cz> --- I am hitting probably the same issue: $ cat testcase.c int a, b, c; int foo (char e, short f, long g) { g = __builtin_mul_overflow (a, c, &b) ? g : (unsigned) g; g &= __builtin_clrsbll (b); return e + f + g + a + b + c; } $ x86_64-pc-linux-gnu-gcc -O -fno-omit-frame-pointer -mbranch-cost=1 testcase.c testcase.c: In function 'foo': testcase.c:9:1: error: unable to generate reloads for: 9 | } | ^ (insn 27 26 28 3 (set (mem/c:DI (plus:DI (reg/f:DI 19 frame) (const_int -56 [0xffffffffffffffc8])) [2 %sfp+-8 S8 A64]) (zero_extend:DI (mem/c:SI (plus:DI (reg/f:DI 19 frame) (const_int -56 [0xffffffffffffffc8])) [2 %sfp+-8 S4 A64]))) 114 {*zero_extendsidi2} (nil)) during RTL pass: reload testcase.c:9:1: internal compiler error: in curr_insn_transform, at lra-constraints.c:4006 0x6d3384 _fatal_insn(char const*, rtx_def const*, char const*, int, char const*) /repo/gcc-trunk/gcc/rtl-error.c:108 0x68fcfe curr_insn_transform /repo/gcc-trunk/gcc/lra-constraints.c:4006 0xe36e76 lra_constraints(bool) /repo/gcc-trunk/gcc/lra-constraints.c:5025 0xe2199c lra(_IO_FILE*) /repo/gcc-trunk/gcc/lra.c:2437 0xdd5479 do_reload /repo/gcc-trunk/gcc/ira.c:5523 0xdd5479 execute /repo/gcc-trunk/gcc/ira.c:5709 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. and also on another testcase; -fno-omit-frame-pointer seems to be the common compiler switch