https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79438
Bug ID: 79438 Summary: [7 Regression] ICE during RA w/ -O3 (or -Ofast) -funroll-loops for 32-bit BE powerpc target Product: gcc Version: 7.0 Status: UNCONFIRMED Keywords: ice-on-valid-code, ra Severity: normal Priority: P3 Component: rtl-optimization Assignee: unassigned at gcc dot gnu.org Reporter: asolokha at gmx dot com Target Milestone: --- Target: powerpc-e500v2-linux-gnuspe 1. gcc-7.0.0-alpha20170205 snapshot fails to compile the following snippet w/ -O3 (or -Ofast) -funroll-loops: int uq; short int au; void sa (int na) { int i7; for (i7 = 0; i7 < 81; ++i7) { uq ^= 1; au ^= na; } } % powerpc-e500v2-linux-gnuspe-gcc-7.0.0-alpha20170205 -O3 -funroll-loops -c t0xyp7os.c t0xyp7os.c: In function 'sa': t0xyp7os.c:14:1: internal compiler error: in lra_set_insn_recog_data, at lra.c:965 } ^ 0x30704833833 lra_set_insn_recog_data(rtx_insn*) /var/tmp/portage/cross-powerpc-e500v2-linux-gnuspe/gcc-7.0.0_alpha20170205/work/gcc-7-20170205/gcc/lra.c:963 0x30704834a07 lra_get_insn_recog_data /var/tmp/portage/cross-powerpc-e500v2-linux-gnuspe/gcc-7.0.0_alpha20170205/work/gcc-7-20170205/gcc/lra-int.h:487 0x30704834a07 lra_update_insn_regno_info(rtx_insn*) /var/tmp/portage/cross-powerpc-e500v2-linux-gnuspe/gcc-7.0.0_alpha20170205/work/gcc-7-20170205/gcc/lra.c:1585 0x30704834e60 lra_push_insn_1 /var/tmp/portage/cross-powerpc-e500v2-linux-gnuspe/gcc-7.0.0_alpha20170205/work/gcc-7-20170205/gcc/lra.c:1736 0x30704834e60 lra_push_insn(rtx_insn*) /var/tmp/portage/cross-powerpc-e500v2-linux-gnuspe/gcc-7.0.0_alpha20170205/work/gcc-7-20170205/gcc/lra.c:1744 0x307048350ff push_insns /var/tmp/portage/cross-powerpc-e500v2-linux-gnuspe/gcc-7.0.0_alpha20170205/work/gcc-7-20170205/gcc/lra.c:1787 0x30704835702 lra_process_new_insns(rtx_insn*, rtx_insn*, rtx_insn*, char const*) /var/tmp/portage/cross-powerpc-e500v2-linux-gnuspe/gcc-7.0.0_alpha20170205/work/gcc-7-20170205/gcc/lra.c:1845 0x3070484d747 curr_insn_transform /var/tmp/portage/cross-powerpc-e500v2-linux-gnuspe/gcc-7.0.0_alpha20170205/work/gcc-7-20170205/gcc/lra-constraints.c:4242 0x3070484f1c6 lra_constraints(bool) /var/tmp/portage/cross-powerpc-e500v2-linux-gnuspe/gcc-7.0.0_alpha20170205/work/gcc-7-20170205/gcc/lra-constraints.c:4732 0x30704836522 lra(_IO_FILE*) /var/tmp/portage/cross-powerpc-e500v2-linux-gnuspe/gcc-7.0.0_alpha20170205/work/gcc-7-20170205/gcc/lra.c:2378 0x307047e3570 do_reload /var/tmp/portage/cross-powerpc-e500v2-linux-gnuspe/gcc-7.0.0_alpha20170205/work/gcc-7-20170205/gcc/ira.c:5400 0x307047e3570 execute /var/tmp/portage/cross-powerpc-e500v2-linux-gnuspe/gcc-7.0.0_alpha20170205/work/gcc-7-20170205/gcc/ira.c:5584 2. Turning LRA off yields the following: % powerpc-e500v2-linux-gnuspe-gcc-7.0.0-alpha20170205 -O3 -funroll-loops -c t0xyp7os.c -mno-lra t0xyp7os.c: In function 'sa': t0xyp7os.c:14:1: error: unrecognizable insn: } ^ (insn 194 77 53 4 (set (const_vector:V4HI [ (const_int 0 [0]) (const_int 0 [0]) (const_int 0 [0]) (const_int 0 [0]) ]) (reg:V4HI 9 9)) "t0xyp7os.c":12 -1 (nil)) t0xyp7os.c:14:1: internal compiler error: in extract_insn, at recog.c:2311 0x2d7dca3c505 _fatal_insn(char const*, rtx_def const*, char const*, int, char const*) /var/tmp/portage/cross-powerpc-e500v2-linux-gnuspe/gcc-7.0.0_alpha20170205/work/gcc-7-20170205/gcc/rtl-error.c:108 0x2d7dca3c55c _fatal_insn_not_found(rtx_def const*, char const*, int, char const*) /var/tmp/portage/cross-powerpc-e500v2-linux-gnuspe/gcc-7.0.0_alpha20170205/work/gcc-7-20170205/gcc/rtl-error.c:116 0x2d7dca076af extract_insn(rtx_insn*) /var/tmp/portage/cross-powerpc-e500v2-linux-gnuspe/gcc-7.0.0_alpha20170205/work/gcc-7-20170205/gcc/recog.c:2311 0x2d7dca0775f extract_insn_cached(rtx_insn*) /var/tmp/portage/cross-powerpc-e500v2-linux-gnuspe/gcc-7.0.0_alpha20170205/work/gcc-7-20170205/gcc/recog.c:2201 0x2d7dc72b68b cleanup_subreg_operands(rtx_insn*) /var/tmp/portage/cross-powerpc-e500v2-linux-gnuspe/gcc-7.0.0_alpha20170205/work/gcc-7-20170205/gcc/final.c:3138 0x2d7dca3a107 reload(rtx_insn*, int) /var/tmp/portage/cross-powerpc-e500v2-linux-gnuspe/gcc-7.0.0_alpha20170205/work/gcc-7-20170205/gcc/reload1.c:1235 0x2d7dc8af1fe do_reload /var/tmp/portage/cross-powerpc-e500v2-linux-gnuspe/gcc-7.0.0_alpha20170205/work/gcc-7-20170205/gcc/ira.c:5412 0x2d7dc8af1fe execute /var/tmp/portage/cross-powerpc-e500v2-linux-gnuspe/gcc-7.0.0_alpha20170205/work/gcc-7-20170205/gcc/ira.c:5584