https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101323
Bug ID: 101323 Summary: ICE: Segmentation fault signal terminated program cc1 Product: gcc Version: 12.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: asolokha at gmx dot com Target Milestone: --- Target: powerpc-*-linux-gnu gcc-12.0.0-alpha20210704 snapshot (g:d07092a61d5a6907b2d92563e810bf5bb8e61c01) ICEs when compiling the following testcase, reduced from test/CodeGen/builtins-ppc-pair-mma.c from the clang 12.0.0 test suite, w/ -mcpu=power7: __vector_pair vp; void test75 (__vector_pair *vpp) { vp = __builtin_vsx_lxvp (0, vpp); } % powerpc-e300c3-linux-gnu-gcc-12.0.0 -mcpu=power7 -c gkczfgfq.c gkczfgfq.c: In function 'test75': gkczfgfq.c:6:8: error: '__builtin_vsx_lxvp' requires the '-mmma' option 6 | vp = __builtin_vsx_lxvp (0, vpp); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ powerpc-e300c3-linux-gnu-gcc-12.0.0: internal compiler error: Segmentation fault signal terminated program cc1 (gdb) where 20 #0 0x00000000009173bc in set_page_table_entry (p=0x7ffff62fc000, entry=entry@entry=0x23ea120) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20210704/work/gcc-12-20210704/gcc/ggc-page.c:646 #1 0x0000000000918244 in alloc_page (order=<optimized out>) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20210704/work/gcc-12-20210704/gcc/ggc-page.c:939 #2 ggc_internal_alloc (size=size@entry=24, f=f@entry=0x0, s=s@entry=0, n=n@entry=1) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20210704/work/gcc-12-20210704/gcc/ggc-page.c:1294 #3 0x0000000000dd90b5 in ggc_internal_alloc (s=24) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20210704/work/gcc-12-20210704/gcc/ggc.h:130 #4 ggc_alloc_rtx_def_stat (s=24) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20210704/work/gcc-12-20210704/gcc/ggc.h:303 #5 rtx_alloc_stat_v (code=code@entry=SUBREG, extra=extra@entry=0) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20210704/work/gcc-12-20210704/gcc/rtl.c:222 #6 0x0000000000dd90d7 in rtx_alloc (code=code@entry=SUBREG) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20210704/work/gcc-12-20210704/gcc/rtl.c:242 #7 0x0000000000a6fb8e in gen_rtx_fmt_ep_stat (arg1=..., arg0=0x7ffff62fbfc0, mode=E_SImode, code=SUBREG) at ./genrtl.h:719 #8 gen_rtx_SUBREG (mode=E_SImode, reg=reg@entry=0x7ffff62fbfc0, offset=...) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20210704/work/gcc-12-20210704/gcc/emit-rtl.c:1023 #9 0x0000000000e23514 in simplify_context::simplify_gen_subreg (this=this@entry=0x7ffffbfff384, outermode=<optimized out>, op=op@entry=0x7ffff62fbfc0, innermode=innermode@entry=E_OOmode, byte=...) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20210704/work/gcc-12-20210704/gcc/simplify-rtx.c:7354 #10 0x0000000000a72300 in simplify_gen_subreg (byte=..., innermode=E_OOmode, op=0x7ffff62fbfc0, outermode=<optimized out>) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20210704/work/gcc-12-20210704/gcc/rtl.h:3401 #11 operand_subword (op=0x7ffff62fbfc0, offset=..., validate_address=1, mode=E_OOmode) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20210704/work/gcc-12-20210704/gcc/emit-rtl.c:1776 #12 0x0000000000ab2292 in emit_move_multi_word (mode=E_OOmode, x=<optimized out>, y=0x7ffff77cefa8) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20210704/work/gcc-12-20210704/gcc/poly-int.h:671 #13 0x0000000000aadc3f in emit_move_insn (x=x@entry=0x7ffff62fbfc0, y=y@entry=0x7ffff77cefa8) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20210704/work/gcc-12-20210704/gcc/expr.c:4035 #14 0x0000000000a86854 in copy_to_reg (x=x@entry=0x7ffff77cefa8) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20210704/work/gcc-12-20210704/gcc/explow.c:624 #15 0x0000000000a724c8 in operand_subword_force (op=op@entry=0x7ffff77cefa8, offset=offset@entry=..., mode=mode@entry=E_OOmode) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20210704/work/gcc-12-20210704/gcc/emit-rtl.c:1799 #16 0x0000000000ab237e in emit_move_multi_word (mode=E_OOmode, x=<optimized out>, y=0x7ffff77cefa8) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20210704/work/gcc-12-20210704/gcc/expr.c:3825 #17 0x0000000000aadc3f in emit_move_insn (x=x@entry=0x7ffff62fbf78, y=y@entry=0x7ffff77cefa8) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20210704/work/gcc-12-20210704/gcc/expr.c:4035 #18 0x0000000000a86854 in copy_to_reg (x=x@entry=0x7ffff77cefa8) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20210704/work/gcc-12-20210704/gcc/explow.c:624 #19 0x0000000000a724c8 in operand_subword_force (op=op@entry=0x7ffff77cefa8, offset=offset@entry=..., mode=mode@entry=E_OOmode) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20210704/work/gcc-12-20210704/gcc/emit-rtl.c:1799 (More stack frames follow...) (gdb) where -20 #882892 0x0000000000ab5716 in store_expr (exp=0x7ffff75f4340, target=0x7ffff77cedc8, call_param_p=<optimized out>, nontemporal=<optimized out>, reverse=<optimized out>) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20210704/work/gcc-12-20210704/gcc/expr.c:5994 #882893 0x0000000000ab7b41 in expand_assignment (to=0x7ffff75f2870, from=0x7ffff75f4340, nontemporal=<optimized out>) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20210704/work/gcc-12-20210704/gcc/expr.c:5729 #882894 0x0000000000978c45 in expand_call_stmt (stmt=<optimized out>) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20210704/work/gcc-12-20210704/gcc/cfgexpand.c:2844 #882895 expand_gimple_stmt_1 (stmt=<optimized out>) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20210704/work/gcc-12-20210704/gcc/cfgexpand.c:3877 #882896 expand_gimple_stmt (stmt=<optimized out>) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20210704/work/gcc-12-20210704/gcc/cfgexpand.c:4041 #882897 0x000000000097eb47 in expand_gimple_basic_block (bb=<optimized out>, disable_tail_calls=<optimized out>) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20210704/work/gcc-12-20210704/gcc/cfgexpand.c:6083 #882898 0x00000000009808f7 in (anonymous namespace)::pass_expand::execute (this=<optimized out>, fun=0x7ffff73ed000) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20210704/work/gcc-12-20210704/gcc/cfgexpand.c:6809 #882899 0x0000000000d634d8 in execute_one_pass (pass=0x22a9560) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20210704/work/gcc-12-20210704/gcc/passes.c:2567 #882900 0x0000000000d63ea3 in execute_pass_list_1 (pass=0x22a9560) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20210704/work/gcc-12-20210704/gcc/passes.c:2656 #882901 0x0000000000d63ee2 in execute_pass_list (fn=0x7ffff73ed000, pass=<optimized out>) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20210704/work/gcc-12-20210704/gcc/passes.c:2667 #882902 0x00000000009bbbc5 in cgraph_node::expand (this=0x7ffff75f3440) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20210704/work/gcc-12-20210704/gcc/context.h:48 #882903 cgraph_node::expand (this=0x7ffff75f3440) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20210704/work/gcc-12-20210704/gcc/cgraphunit.c:1781 #882904 0x00000000009bcfcf in output_in_order () at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20210704/work/gcc-12-20210704/gcc/cgraphunit.c:2135 #882905 symbol_table::compile (this=<optimized out>) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20210704/work/gcc-12-20210704/gcc/cgraphunit.c:2353 #882906 symbol_table::compile (this=<optimized out>) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20210704/work/gcc-12-20210704/gcc/cgraphunit.c:2267 #882907 0x00000000009bff87 in symbol_table::finalize_compilation_unit (this=0x7ffff75eb000) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20210704/work/gcc-12-20210704/gcc/cgraphunit.c:2537 #882908 0x0000000000e4567a in compile_file () at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20210704/work/gcc-12-20210704/gcc/toplev.c:483 #882909 0x00000000007ef639 in do_compile () at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20210704/work/gcc-12-20210704/gcc/toplev.c:2226 #882910 toplev::main (this=this@entry=0x7fffffffdaa6, argc=<optimized out>, argc@entry=12, argv=<optimized out>, argv@entry=0x7fffffffdbb8) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20210704/work/gcc-12-20210704/gcc/toplev.c:2365 #882911 0x00000000007f1d31 in main (argc=12, argv=0x7fffffffdbb8) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20210704/work/gcc-12-20210704/gcc/main.c:39