https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81288
Bug ID: 81288 Summary: [5/6/7/8 Regression] ICE on 32-bit BE powerpc targets -w -misel -O2 (-O3, -Ofast, -Os) Product: gcc Version: unknown Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: rtl-optimization Assignee: unassigned at gcc dot gnu.org Reporter: asolokha at gmx dot com Target Milestone: --- Target: powerpc-*-linux-gnu*, powerpcspe-*-linux-gnu* gcc from 5 to at least 8.0.0-alpha20170625 snapshot inclusive ICE when compiling the following snippet w/ -misel -O2 (-O3, -Ofast, -Os): int yk (unsigned long long int t4, int f3) { unsigned int *un = (f3 != 0) ? &t4 : 0; *un ^= t4; if (*un == t4) f3 = !!t4; return f3; } % powerpc-e300c3-linux-gnu-gcc-8.0.0-alpha20170625 -Os -misel -c -w k2ei2ru6.c powerpc-e300c3-linux-gnu-gcc-8.0.0-alpha20170625: internal compiler error: Segmentation fault (program cc1) gcc 8 demonstrates the following backtrace: (gdb) where #0 0x0000000000c26481 in simplify_immed_subreg (outermode=SImode, op=0x3fff712f480, innermode=DImode, byte=4) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-8.0.0_alpha20170625/work/gcc-8-20170625/gcc/simplify-rtx.c:5686 Backtrace stopped: Cannot access memory at address 0x3fffbffefd0 And gcc 5.4.0: (gdb) where 10 #0 0x000002aaab00ec7e in vec<df_ref_d*, va_heap, vl_ptr>::vec() () #1 0x000002aaab00ecee in auto_vec<df_ref_d*, 128ul>::auto_vec() () #2 0x000002aaab00e9a2 in df_collection_rec::df_collection_rec() () #3 0x000002aaab0062ab in df_insn_rescan(rtx_insn*) () #4 0x000002aaab426c13 in confirm_change_group() () #5 0x000002aaab426c79 in apply_change_group() () #6 0x000002aaabb4f43d in ?? () #7 0x000002aaabb4f8cf in ?? () #8 0x000002aaabb4f8cf in ?? () #9 0x000002aaabb4f8cf in ?? () (More stack frames follow...) (gdb) where -20 #190606 0x000002aaabb4f8cf in ?? () #190607 0x000002aaabb5225f in ?? () #190608 0x000002aaabb52630 in ?? () #190609 0x000002aaabb589f3 in ?? () #190610 0x000002aaabb58f4b in ?? () #190611 0x000002aaabb5b236 in ?? () #190612 0x000002aaabb5b3c9 in ?? () #190613 0x000002aaab3ed4b7 in execute_one_pass(opt_pass*) () #190614 0x000002aaab3ed746 in ?? () #190615 0x000002aaab3ed777 in ?? () #190616 0x000002aaab3ed7ee in execute_pass_list(function*, opt_pass*) () #190617 0x000002aaaafca86e in cgraph_node::expand() () #190618 0x000002aaaafcad99 in ?? () #190619 0x000002aaaafcb94d in symbol_table::compile() () #190620 0x000002aaaafcba8c in symbol_table::finalize_compilation_unit() () #190621 0x000002aaaae27901 in c_write_global_declarations() () #190622 0x000002aaab50bcff in ?? () #190623 0x000002aaab50e6b9 in ?? () #190624 0x000002aaab50e9cb in toplev::main(int, char**) () #190625 0x000002aaabcb5b9f in main ()