https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91102
Bug ID: 91102 Summary: [9/10 Regression] aarch64 ICE on Linux kernel with -Os starting with r270266 Product: gcc Version: 9.1.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: jakub at gcc dot gnu.org Target Milestone: --- int foo (long d, long l) { register long e asm ("x1") = d; register long f asm("x2") = l; asm ("" : : "r" (e), "r" (f)); } struct T { int i; int j; }; union S { long h; struct T t; }; void bar (union S b) { while (1) { union S c = b; c.t.j++; b.h = foo (b.h, c.h); } } ICEs with -Os on aarch64-linux starting with r270266: rh1727453.i: In function ‘bar’: rh1727453.i:21:1: error: unable to generate reloads for: 21 | } | ^ (insn 15 14 16 3 (set (reg/v:DI 2 x2 [ f ]) (ior:DI (and:DI (reg/v:DI 1 x1 [ e ]) (const_int 4294967295 [0xffffffff])) (ashift:DI (subreg:DI (reg:SI 99) 0) (const_int 32 [0x20])))) "rh1727453.i":5:17 794 {*aarch64_bfidi4_noand} (expr_list:REG_DEAD (reg:SI 99) (nil))) during RTL pass: reload rh1727453.i:21:1: internal compiler error: in curr_insn_transform, at lra-constraints.c:3962 0xfa3363 _fatal_insn(char const*, rtx_def const*, char const*, int, char const*) ../../gcc/rtl-error.c:108 0xe09d9f curr_insn_transform ../../gcc/lra-constraints.c:3962 0xe0d788 lra_constraints(bool) ../../gcc/lra-constraints.c:4978 0xdf5639 lra(_IO_FILE*) ../../gcc/lra.c:2472 0xd9d0c2 do_reload ../../gcc/ira.c:5516 0xd9d550 execute ../../gcc/ira.c:5700 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.