http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58115
Bug ID: 58115
Summary: testcase gcc.target/i386/intrinsics_4.c failure
Product: gcc
Version: 4.9.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: bernd.edlinger at hotmail dot de
Target: i386-pc-linux-gnu
Build: gcc-4.9-20130728
this test case fails on i686-pc-linux with internal error.
intrinsics_4.c: In function 'foo':
intrinsics_4.c:15:1: internal compiler error: Max. number of generated reload
insns per insn is achieved (90)
}
^
0x849e4c3 lra_constraints(bool)
../../gcc-4.9-20130728/gcc/lra-constraints.c:3724
0x849136c lra(_IO_FILE*)
../../gcc-4.9-20130728/gcc/lra.c:2319
0x8456beb do_reload
../../gcc-4.9-20130728/gcc/ira.c:4689
0x8456beb rest_of_handle_reload
../../gcc-4.9-20130728/gcc/ira.c:4801
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.
The crash happens only with this command line
"gcc -O2 -msse -mno-avx -S intrinsics_4.c"
but not with "-O1 -msse -mno-avx" or "-O2 -msse2 -mno-avx"
The problem seems to be triggered when the movv8sf_internal
is split up to 8 movsi_internal which leads to the crash in the lra.
The wrong decision is happening in expr.c in emit_move_insn:
#0 emit_move_multi_word(machine_mode, rtx_def*, rtx_def*) () at
../../gcc-4.9-20130728/gcc/expr.c:3344
#1 0x08332390 in emit_move_insn(rtx_def*, rtx_def*) () at
../../gcc-4.9-20130728/gcc/expr.c:3526
#2 0x08311cb1 in force_reg(machine_mode, rtx_def*) [clone .part.2] ()
#3 0x08833225 in ix86_fixup_binary_operands(rtx_code, machine_mode, rtx_def**)
() at ../../gcc-4.9-20130728/gcc/config/i386/i386.c:16729
#4 0x08833250 in ix86_fixup_binary_operands_no_copy(rtx_code, machine_mode,
rtx_def**) () at ../../gcc-4.9-20130728/gcc/config/i386/i386.c:16763
#5 0x088d3af0 in gen_andv8sf3(rtx_def*, rtx_def*, rtx_def*) ()
#6 0x081149db in ix86_expand_args_builtin(builtin_description const*,
tree_node*, rtx_def*) () at ../../gcc-4.9-20130728/gcc/config/i386/i386.c:30457
#7 0x0884b762 in ix86_expand_builtin(tree_node*, rtx_def*, rtx_def*,
machine_mode, int) () at ../../gcc-4.9-20130728/gcc/config/i386/i386.c:32769
#8 0x082367cc in expand_builtin(tree_node*, rtx_def*, rtx_def*, machine_mode,
int) () at ../../gcc-4.9-20130728/gcc/builtins.c:5823
#9 0x0832bd9d in expand_expr_real_1(tree_node*, rtx_def*, machine_mode,
expand_modifier, rtx_def**) () at ../../gcc-4.9-20130728/gcc/expr.c:10270
#10 0x0833953d in store_expr(tree_node*, rtx_def*, int, bool) () at
../../gcc-4.9-20130728/gcc/expr.c:5287
#11 0x0833bf96 in expand_assignment(tree_node*, tree_node*, bool) () at
../../gcc-4.9-20130728/gcc/expr.c:5073
#12 0x0825831c in expand_gimple_stmt(gimple_statement_d*) () at
../../gcc-4.9-20130728/gcc/cfgexpand.c:2178
#13 0x0825971c in expand_gimple_basic_block(basic_block_def*, bool) () at
../../gcc-4.9-20130728/gcc/cfgexpand.c:4204
#14 0x0825b458 in gimple_expand_cfg() () at
../../gcc-4.9-20130728/gcc/cfgexpand.c:4723
#15 0x084f09eb in execute_one_pass(opt_pass*) () at
../../gcc-4.9-20130728/gcc/passes.c:1965
#16 0x084f0e15 in execute_pass_list(opt_pass*) () at
../../gcc-4.9-20130728/gcc/passes.c:2017
#17 0x0827c09e in expand_function(cgraph_node*) () at
../../gcc-4.9-20130728/gcc/cgraphunit.c:1591
#18 0x0827df4d in compile() () at ../../gcc-4.9-20130728/gcc/cgraphunit.c:1695
#19 0x0827e59a in finalize_compilation_unit() () at
../../gcc-4.9-20130728/gcc/cgraphunit.c:2106
#20 0x08146075 in c_write_global_declarations() () at
../../gcc-4.9-20130728/gcc/c/c-decl.c:10125
#21 0x08595d5d in compile_file() ()
#22 0x08597d42 in toplev_main(int, char**) ()
#23 0x08127ebb in main () at ../../gcc-4.9-20130728/gcc/main.c:36
This is probably an error from the back-end optab_handler (?)
The failure started from 2013-06-23 and continues till today.