This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/80583] [6/7/8 Regression] ICE with target attribute and vectorized float: internal compiler error: in convert_move, at expr.c:270
- From: "marxin at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 13 Jul 2017 14:42:27 +0000
- Subject: [Bug target/80583] [6/7/8 Regression] ICE with target attribute and vectorized float: internal compiler error: in convert_move, at expr.c:270
- Auto-submitted: auto-generated
- References: <bug-80583-4@http.gcc.gnu.org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80583
Martin Liška <marxin at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Known to work|5.4.0 |
Assignee|marxin at gcc dot gnu.org |unassigned at gcc dot gnu.org
Summary|[6/7/8 Regression] ICE with |[6/7/8 Regression] ICE with
|target_clones and |target attribute and
|vectorized float: internal |vectorized float: internal
|compiler error: in |compiler error: in
|convert_move, at expr.c:270 |convert_move, at expr.c:270
Known to fail| |4.9.4, 5.4.0, 6.4.0, 7.1.0
--- Comment #6 from Martin Liška <marxin at gcc dot gnu.org> ---
So it's a different story and it's related to target options:
$ cat /home/marxin/Programming/testcases/pr80583-2.ii
struct S {
__attribute__((__vector_size__(8 * sizeof(0)))) int a;
};
int __attribute__((target("avx"))) foo() {
S *b{};
__attribute__((__vector_size__(8 * sizeof(0)))) int x = b->a;
}
$ g++ /home/marxin/Programming/testcases/pr80583-2.ii -c
during RTL pass: expand
/home/marxin/Programming/testcases/pr80583-2.ii: In function ‘int foo()’:
/home/marxin/Programming/testcases/pr80583-2.ii:7:55: internal compiler error:
in convert_move, at expr.c:232
__attribute__((__vector_size__(8 * sizeof(0)))) int x = b->a;
^
0xa593ab convert_move(rtx_def*, rtx_def*, int)
../../gcc/expr.c:232
0xa60292 store_expr_with_bounds(tree_node*, rtx_def*, int, bool, bool,
tree_node*)
../../gcc/expr.c:5636
0xa619a7 expand_assignment(tree_node*, tree_node*, bool)
../../gcc/expr.c:5327
0x93d9a8 expand_gimple_stmt_1
../../gcc/cfgexpand.c:3651
0x93d9a8 expand_gimple_stmt
../../gcc/cfgexpand.c:3749
0x93fb17 expand_gimple_basic_block
../../gcc/cfgexpand.c:5753
0x945ba6 execute
../../gcc/cfgexpand.c:6360
Which ICEs for all releases I have (4.5.0+).