https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81113

            Bug ID: 81113
           Summary: ICE with AVX structure field
           Product: gcc
           Version: 5.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: nathan at gcc dot gnu.org
  Target Milestone: ---

Created attachment 41572
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=41572&action=edit
Exemplar

target is x86_64

The attached ICEs in expr.c, lowering the second call to Quux to RTL:
 <materialize-all-clones> <simdclone> void Frob(const Good&, const Bad&)during
RTL pass: expand

bug.ii: In function 'void Frob(const Good&, const Bad&)':
bug.ii:20:13: internal compiler error: in convert_move, at expr.c:231
   Quux (bad.val);
         ~~~~^~~
0xcc9f5b convert_move(rtx_def*, rtx_def*, int)
        /data/users/nathans/trunk/obj/x86_64/../../src/gcc/expr.c:231
0xcd9bd1 store_expr_with_bounds(tree_node*, rtx_def*, int, bool, bool,
tree_node*)
        /data/users/nathans/trunk/obj/x86_64/../../src/gcc/expr.c:5631
0xcd8038 expand_assignment(tree_node*, tree_node*, bool)
        /data/users/nathans/trunk/obj/x86_64/../../src/gcc/expr.c:5323
0xb80c31 expand_gimple_stmt_1
        /data/users/nathans/trunk/obj/x86_64/../../src/gcc/cfgexpand.c:3645
0xb8101c expand_gimple_stmt
        /data/users/nathans/trunk/obj/x86_64/../../src/gcc/cfgexpand.c:3741
0xb880d6 expand_gimple_basic_block
        /data/users/nathans/trunk/obj/x86_64/../../src/gcc/cfgexpand.c:5745
0xb89b06 execute
        /data/users/nathans/trunk/obj/x86_64/../../src/gcc/cfgexpand.c:6354


The Good struct is passed just fine.  Both Good and Bad have the same size and
alignment.  I suspect different modes though.

Reply via email to