https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67029
Markus Trippelsdorf <trippels at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW CC| |vmakarov at gcc dot gnu.org Component|c |rtl-optimization Summary|gcc-5.2.0 unable to find a |[5/6 regression] gcc-5.2.0 |register to spill with O3 |unable to find a register |fsched-pressure |to spill with O3 |fschedule-insns |fsched-pressure | |fschedule-insns Ever confirmed|0 |1 --- Comment #8 from Markus Trippelsdorf <trippels at gcc dot gnu.org> --- markus@x4 tmp % cat curve25519-donna-c64.i extern void fn2 (char *); __int128 a, b; int fn1 (void) { char e[32]; fn2 (e); b = 9 * (a >> 1); return 0; } markus@x4 tmp % gcc -O2 -fstack-protector -fschedule-insns -c curve25519-donna-c64.i curve25519-donna-c64.i: In function ‘fn1’: curve25519-donna-c64.i:10:1: error: unable to find a register to spill } ^ curve25519-donna-c64.i:10:1: error: this is the insn: (insn 15 42 43 2 (parallel [ (set (reg:TI 104 [orig:97 D.1849 ] [97]) (mult:TI (zero_extend:TI (subreg/j:DI (reg:TI 104 [orig:97 D.1849 ] [97]) 0)) (zero_extend:TI (reg:DI 98)))) (clobber (reg:CC 17 flags)) ]) curve25519-donna-c64.i:8 328 {*umulditi3_1} (expr_list:REG_DEAD (reg:DI 98) (expr_list:REG_UNUSED (reg:CC 17 flags) (expr_list:REG_EQUAL (mult:TI (zero_extend:TI (subreg:DI (reg:TI 92 [ D.1849 ]) 0)) (const_int 9 [0x9])) (nil))))) curve25519-donna-c64.i:10: confused by earlier errors, bailing out