https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78643
Bug ID: 78643 Summary: ICE in convert_move, at expr.c:230 Product: gcc Version: 7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: doko at gcc dot gnu.org Target Milestone: --- Created attachment 40223 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=40223&action=edit test case seen on trunk, 6 and 5 branches on x86_64-linux-gnu, works with -O1 and up: $ g++ -c -O0 main.cpp main.cpp: In function 'void p(AV)': main.cpp:80:6: note: The ABI for passing parameters with 32-byte alignment has changed in GCC 4.6 void p(union AV a) { ^ main.cpp: In function 'void test(AV, int)': main.cpp:101:29: internal compiler error: in convert_move, at expr.c:230 r.av = _mm256_shift_left(a.av,n); ~~~~~~~~~~~~~~~~~^~~~~~~~ 0x898da0 convert_move(rtx_def*, rtx_def*, int) ../../src/gcc/expr.c:230 0x89f5cb store_expr_with_bounds(tree_node*, rtx_def*, int, bool, bool, tree_node*) ../../src/gcc/expr.c:5628 0x89fa3e expand_assignment(tree_node*, tree_node*, bool) ../../src/gcc/expr.c:5320 0x7b3dcd expand_gimple_stmt_1 ../../src/gcc/cfgexpand.c:3641 0x7b3dcd expand_gimple_stmt ../../src/gcc/cfgexpand.c:3737 0x7b538f expand_gimple_basic_block ../../src/gcc/cfgexpand.c:5744 0x7ba596 execute ../../src/gcc/cfgexpand.c:6358 Please submit a full bug report, with preprocessed source if appropriate.