https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77919
Bug ID: 77919 Summary: ICE converting DC to V2DF mode Product: gcc Version: 7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: rtl-optimization Assignee: unassigned at gcc dot gnu.org Reporter: krebbel at gcc dot gnu.org Target Milestone: --- Created attachment 39780 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=39780&action=edit auto-reduced testcase The attached testcase ICEs with a segmentation fault compiled on x86-64 r240231 with -O1: t.cc:94:21: internal compiler error: Segmentation fault return vfrom->v2d; ^~~ 0xd7c1cf crash_signal /home/andreas/clean/../gcc/gcc/toplev.c:336 0xa4ea44 emit_move_insn(rtx_def*, rtx_def*) /home/andreas/clean/../gcc/gcc/expr.c:3692 0xa5785c store_expr_with_bounds(tree_node*, rtx_def*, int, bool, bool, tree_node*) /home/andreas/clean/../gcc/gcc/expr.c:5624 0xa582b5 expand_assignment(tree_node*, tree_node*, bool) /home/andreas/clean/../gcc/gcc/expr.c:5316 0x94107c expand_gimple_stmt_1 /home/andreas/clean/../gcc/gcc/cfgexpand.c:3649 0x94107c expand_gimple_stmt /home/andreas/clean/../gcc/gcc/cfgexpand.c:3745 0x942ec1 expand_gimple_basic_block /home/andreas/clean/../gcc/gcc/cfgexpand.c:5752 0x9485e6 execute /home/andreas/clean/../gcc/gcc/cfgexpand.c:6363 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <http://gcc.gnu.org/bugs.html> for instructions. Program received signal SIGSEGV, Segmentation fault. 0x0000000000af72b4 in emit_move_insn (x=0x7fffefe36ee8, y=0x0) at /home/andreas/clean/../gcc/gcc/expr.c:3692 3692 gcc_assert (mode != BLKmode Missing separate debuginfos, use: debuginfo-install glibc-2.17-106.el7_2.8.x86_64 gmp-6.0.0-12.el7_1.x86_64 libgcc-4.8.5-4.el7.x86_64 libmpc-1.0.1-3.el7.x86_64 libstdc++-4.8.5-4.el7.x86_64 mpfr-3.1.1-4.el7.x86_64 zlib-1.2.7-15.el7.x86_64 (gdb) bt #0 0x0000000000af72b4 in emit_move_insn (x=0x7fffefe36ee8, y=0x0) at /home/andreas/clean/../gcc/gcc/expr.c:3692 #1 0x0000000000aee203 in convert_move (to=0x7fffefe36ee8, from=0x0, unsignedp=0) at /home/andreas/clean/../gcc/gcc/expr.c:264 #2 0x0000000000afd961 in store_expr_with_bounds (exp=0x7fffefe24bd0, target=0x7fffefe36ee8, call_param_p=0, nontemporal=false, reverse=false, btarget=0x7fffefe23f30) at /home/andreas/clean/../gcc/gcc/expr.c:5624 #3 0x0000000000afbde0 in expand_assignment (to=0x7fffefe23f30, from=0x7fffefe24bd0, nontemporal=false) at /home/andreas/clean/../gcc/gcc/expr.c:5316 #4 0x00000000009be95a in expand_gimple_stmt_1 (stmt=0x7fffefe22fa0) at /home/andreas/clean/../gcc/gcc/cfgexpand.c:3649 #5 0x00000000009bed45 in expand_gimple_stmt (stmt=0x7fffefe22fa0) at /home/andreas/clean/../gcc/gcc/cfgexpand.c:3745 #6 0x00000000009c5e4e in expand_gimple_basic_block (bb=0x7fffefe1e208, disable_tail_calls=false) at /home/andreas/clean/../gcc/gcc/cfgexpand.c:5752 #7 0x00000000009c7922 in (anonymous namespace)::pass_expand::execute (this=0x236e4e0, fun=0x7ffff01cc498) at /home/andreas/clean/../gcc/gcc/cfgexpand.c:6363 #8 0x0000000000dab0ef in execute_one_pass (pass=pass@entry=0x236e4e0) at /home/andreas/clean/../gcc/gcc/passes.c:2342 #9 0x0000000000dab768 in execute_pass_list_1 (pass=0x236e4e0) at /home/andreas/clean/../gcc/gcc/passes.c:2431 #10 0x0000000000dab7c5 in execute_pass_list (fn=0x7ffff01cc498, pass=<optimized out>) at /home/andreas/clean/../gcc/gcc/passes.c:2442 #11 0x0000000000a038ed in cgraph_node::expand (this=0x7ffff01cb8a0) at /home/andreas/clean/../gcc/gcc/cgraphunit.c:1985 #12 0x0000000000a05211 in expand_all_functions () at /home/andreas/clean/../gcc/gcc/cgraphunit.c:2121 #13 symbol_table::compile (this=this@entry=0x7fffeffd20a8) at /home/andreas/clean/../gcc/gcc/cgraphunit.c:2478 #14 0x0000000000a072ea in symbol_table::finalize_compilation_unit (this=0x7fffeffd20a8) at /home/andreas/clean/../gcc/gcc/cgraphunit.c:2568 #15 0x0000000000e890b8 in compile_file () at /home/andreas/clean/../gcc/gcc/toplev.c:491 #16 0x0000000000e8b66b in do_compile () at /home/andreas/clean/../gcc/gcc/toplev.c:2010 #17 0x0000000000e8b93b in toplev::main (this=0x7fffffffe270, argc=3, argv=0x7fffffffe378) at /home/andreas/clean/../gcc/gcc/toplev.c:2144 #18 0x00000000006708f7 in main (argc=3, argv=0x7fffffffe378) at /home/andreas/clean/../gcc/gcc/main.c:39 (gdb) frame 2 #2 0x0000000000afd961 in store_expr_with_bounds (exp=0x7fffefe24bd0, target=0x7fffefe36ee8, call_param_p=0, nontemporal=false, reverse=false, btarget=0x7fffefe23f30) at /home/andreas/clean/../gcc/gcc/expr.c:5624 5624 convert_move (target, temp, TYPE_UNSIGNED (TREE_TYPE (exp))); (gdb) p temp $1 = (rtx) 0x7fffefe41558 (gdb) p debug_rtx(temp) (concat:DC (reg:DF 110 [ D.3170 ]) (reg:DF 111 [ D.3170+8 ])) $2 = void (gdb) p debug_rtx(target) (reg:V2DF 107 [ _40 ]) $3 = void