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+).